是否有理由更喜欢使用map()超过列表理解,反之亦然?它们中的任何一个通常比另一个更有效或被认为是更加pythonic?
为什么Google Python样式指南更喜欢列表推导和for循环而不是filter,map和reduce?
不推荐使用的语言功能:..."使用列表推导和循环而不是过滤,映射和减少."
给出的解释是:"我们不使用任何不支持这些功能的Python版本,因此没有理由不使用新的样式."
我的实际例子比较复杂,所以我将这个概念简化为一个简单的例子:
l = [1,2,3,4,5,6,7,8]
for number in l:
calc = number*10
print calc
Run Code Online (Sandbox Code Playgroud)
对于我的循环的每次迭代,我最终得到一个变量(calc)我想用来填充一个新的列表.我的实际过程涉及的不仅仅是乘以值10,因此我希望能够通过此方法设置新列表中的每个值.新代码可能如下所示:
l = [1,2,3,4,5,6,7,8]
for number in l:
calc = number*10
set calc as x'th entry in a new list called l2 (x = iteration cycle)
print l2
Run Code Online (Sandbox Code Playgroud)
然后它将打印新列表: [10,20,30,40,...]