2 回答

TA貢獻1993條經驗 獲得超6個贊
如果你要操作索引和下標(這通常不是很python),你必須習慣python中range()的外觀。
大多數情況下,有一種方法可以在不運行索引的情況下處理列表。
這不是一個很好的例子,但它說明了可以采取的方法:
lst = [1,2,3,4,5]
def subLists(arr):
if not arr: return
for sl in subLists(arr[:-1]): yield sl
yield arr
輸出:
for sublist in subLists(lst):
print(sublist)
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
或者,您可以通過使用枚舉來避免隱晦的范圍(len(lst)):
for n,_ in enumerate(lst,1):
print(lst[:n])
你也可以使用累加從迭代工具:
from itertools import accumulate
for s in accumulate([i] for i in lst):
print(s)

TA貢獻1775條經驗 獲得超8個贊
我不認為有一個很好的形式,以你想要的形式。你的方式已經很好了。我能想到的一個替代方案是通過一次附加一個項目來構建它們。
prefix = []
for x in lst:
prefix.append(x)
print(prefix)
添加回答
舉報