Python 哪个PEP(设计文档)决定使用map(function,iterable)而不是实现list.map()
我想知道为什么Python标准库中没有list.map() 还有其他选择,比如map(function,iterable)和列表理解 我找不到解释为什么选择map而不是实现list.map()的PEP(设计文档) 假设我们有这样一个列表:Python 哪个PEP(设计文档)决定使用map(function,iterable)而不是实现list.map(),python,dictionary,language-design,pep,Python,Dictionary,Language Design,Pep,我想知道为什么Python标准库中没有list.map() 还有其他选择,比如map(function,iterable)和列表理解 我找不到解释为什么选择map而不是实现list.map()的PEP(设计文档) 假设我们有这样一个列表: foo = [1,2,3,4,5,6] 我相信这个准则: foo.map(function) # or foo.map(lambda x: x*2) 比以下内容更具可读性: least_readable = list(map(lambda x: x*2
foo = [1,2,3,4,5,6]
我相信这个准则:
foo.map(function)
# or
foo.map(lambda x: x*2)
比以下内容更具可读性:
least_readable = list(map(lambda x: x*2, foo))
这对我来说已经足够容易理解了
it_readable_enough_for_me = [multiply_by_two(x) for x in foo]
这看起来更容易理解,但并不存在:
does_not_exist = foo.map(multiply_by_two)
我认为,如果这种情况不存在,那一定有原因
不仅仅是因为map(function,iterable)更通用。
我想这背后一定有一个重要的原因我看不出来。没有
第二个稳定实施的政治公众人物说:
在Python中,通过使用map()内置函数已经可以实现此行为
map
功能在中定义,在中添加。以前的位置是,最初于2003年2月1日引入。在此日期之前,没有政治公众人物添加此功能
根据:
Python在1994年1月达到了1.0版。此版本中包含的主要新功能是功能性编程工具lambda
、map
、filter
和reduce
。Van Rossum表示,“Python收购了lambda、reduce()、filter()和map(),这是一位Lisp黑客的功劳,他错过了它们并提交了工作补丁”
没有
第二个稳定实施的政治公众人物说:
在Python中,通过使用map()内置函数已经可以实现此行为
map
功能在中定义,在中添加。以前的位置是,最初于2003年2月1日引入。在此日期之前,没有政治公众人物添加此功能
根据:
Python在1994年1月达到了1.0版。此版本中包含的主要新功能是功能性编程工具lambda
、map
、filter
和reduce
。Van Rossum表示,“Python收购了lambda、reduce()、filter()和map(),这是一位Lisp黑客的功劳,他错过了它们并提交了工作补丁”
一般来说,
map
接受任何iterable,包括生成器和自定义对象。这是一个比特定的list.map
灵活得多的实现。有趣的是,Pandas实际上支持您预期的语法。至于实际的PEP,我不太清楚它也不返回列表
,因此它可以实现内存效率感知编码。@roganjosh我并不惊讶,他的预期语法在其他语言中很常见,但我们都知道Python是特殊的(无论好坏),我怀疑这可能归结为Guido的。我不确定所有这些决定是否都得到了政治公众人物的支持,但事实上,这正是我现在要追查的:)一般来说,map
接受任何iterable,包括生成器和自定义对象。这是一个比特定的list.map
灵活得多的实现。有趣的是,Pandas实际上支持您预期的语法。至于实际的PEP,我不太清楚它也不返回列表
,因此它可以实现内存效率感知编码。@roganjosh我并不惊讶,他的预期语法在其他语言中很常见,但我们都知道Python是特殊的(无论好坏),我怀疑这可能归结为Guido的。我不确定所有这些决定是否都得到政治公众人物的支持,但事实上,这正是我现在要追查的:)你能澄清你对第一句话的观点吗?我看不出来。这样断章取义,你让它看起来像是OP询问的“这个行为”(即,list.map
)。但事实并非如此。我的意思是,在第二份政治公众人物报告撰写时,这种行为已经存在,所以它要么是在第一份政治公众人物报告中添加的,要么根本不在政治公众人物报告中。你能澄清一下你对第一份引文的观点吗?我看不出来。这样断章取义,你让它看起来像是OP询问的“这个行为”(即,list.map
)。但事实并非如此,我的意思是,在第二次政治公众人物撰写时,这种行为已经存在,因此它要么被添加到第一次政治公众人物中,要么根本不在政治公众人物中
does_not_exist = foo.map(multiply_by_two)