/ / pythonic spôsob, ako vytvoriť python zoznamy dĺžky runtime - python, slučky, for-loop, štýly

pythonický spôsob, ako vytvoriť pythonové zoznamy dĺžky runtime - python, slučky, for-loop, štýly

Na f=[] v nižšie kód zdá strata riadok, ale ja som don "t vedieť, ako sa dostať okolo neho.

1)

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

2)

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

Len som sa opýtať, čo je najviac "pythonic" spôsob, ako to urobiť.Na f=[] Zdá sa, že linka je unpythonic.

odpovede:

3 pre odpoveď č. 1

Radšej si prečítajte o Zoznam comprehensions v jazyku python

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

0 pre odpoveď č. 2
f = [None]*len(X)

vytvorí zoznam žiadne prvky v rovnakej veľkosti ako X a je o (n)

f = list(X)

skopíruje X f a má rovnakú časovú zložitosť ako vyššie podľa https://wiki.python.org/moin/TimeComplexity

Ak ste chcel konkrétne vytvoriť zoznam, kde každý prvok je foo(x), potom áno:

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