【发布时间】:2014-11-06 11:37:10
【问题描述】:
假设:
列表 = [ 2, 4, 6, 11]
将该列表转换为 list = [4, 8, 12, 22] 的最快方法是什么?
【问题讨论】:
-
“最快”是什么意思?最低的时间复杂度?最短的代码?如果有的话,你尝试过什么?
假设:
列表 = [ 2, 4, 6, 11]
将该列表转换为 list = [4, 8, 12, 22] 的最快方法是什么?
【问题讨论】:
这将起作用:
list = [x * 2 for x in list]
另外,不要在内置函数后命名变量,因为它们会影响后者。
【讨论】:
我建议您使用map()。 map 函数接收一个 list 和一个函数 f( ),它包括在 的每个元素上应用 f( )列表并将结果附加到将作为返回对象的列表
foos = [2,4,6,11]
def f(foo):
return foo*2
result = map(f, foos)
print result
【讨论】:
使用pythonlambda
>>> list = [ 2, 4, 6, 11]
>>> list
[2, 4, 6, 11]
>>> map(lambda x:x*2, list)
[4, 8, 12, 22]
【讨论】: