比方說,我們有隨機整數將列表中的每個值設置爲對之前值的某些修改?
我希望得到一個新的列表(或者代替改變這個列表),每一個元素都是本身,或前一個元素的列表* 2(取大)
一種方式來做到這一點是:
a = [-1, 0, 5, -2, 1]
for i in range(1:len(a)):
a[i] = max(a[i], a[i-1] * 2)
#result should be [-1, 0, 5, 10, 20]
然而,有一個線做一些這方面的創新的方式?是否有一些巧妙的使用lambda,map或iterator來獲得相同的結果?
我嘗試使用zip創建每個值和先前值的對,但只要我們更改一個元素,其餘的zip就沒用了,因爲這些值也不會改變。
https://docs.python.org/3/library/itertools.html#itertools.accumulate – user2357112