pythonic方法来创建运行时长度的python列表

时间:2015-01-25 21:26:22

标签: python loops for-loop styles

以下代码中的f=[]似乎浪费了一条线,但我不知道如何绕过它。

1)

f=[]
for x in X:
   f.append(foo(x))

2)

f=[]
[f.append(foo(x)) for x in X]

我只是想知道最“pythonic”的做法是什么。 f=[]行似乎是unpythonic。

2 个答案:

答案 0 :(得分:3)

您最好阅读list comprehensions in python

f = [foo(x) for x in X]

答案 1 :(得分:0)

f = [None]*len(X)

创建一个与X大小相同的None元素列表,并且是O(n)

f = list(X) 

根据https://wiki.python.org/moin/TimeComplexity

将X复制到f并具有与上述相同的时间复杂度

如果您打算专门创建一个列表,其中每个元素都是foo(x),那么是的:

f = [foo(x) for x in X]