我想打開以下for
回圈:
n = 10
x0 = 0
values = [x0]
for i in range(n):
x0 = f(x0)
values.append(x0)
成一個班輪。我想我可以做這樣的事情:
values = [f(x0) for i in range(n)]
但我需要更新x0
回圈的每個實體中的值。有任何想法嗎?
uj5u.com熱心網友回復:
海象操作員 :=
救援:
>>> x0 = 0
>>> def f(x): return x*2 1
...
>>> [x0:=f(x0) for _ in range(10)]
[1, 3, 7, 15, 31, 63, 127, 255, 511, 1023]
>>> x0
1023 # x0 was modified
uj5u.com熱心網友回復:
除了海象,more_itertools
還有一個功能iterate
可以重復應用:
import more_itertools as mo
mo.take(10, mo.iterate(f, x0))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/470695.html
上一篇:你能把它合并成一個for回圈嗎?