追加累计列表列表python

2024-05-19 05:06:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用这样一种通俗的方式扩展列表:

# Consider the following list of lists
l_Of_l = [ [1], [2], [3], [4], [5], [6], [7]]

期望的结果是:

^{pr2}$

所以基本上,列表的大小在连续扩展后保持不变。在

编辑:

以下是我最初所做的:

^{3}$

但结果是:

[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]

有人知道如何以正确的方式实现这一点吗?在


Tags: ofthe编辑列表方式listslistfollowing
3条回答

使用itertools的累加:

list(itertools.accumulate(l_Of_l))                                                                                              
Out: 
[[1],
 [1, 2],
 [1, 2, 3],
 [1, 2, 3, 4],
 [1, 2, 3, 4, 5],
 [1, 2, 3, 4, 5, 6],
 [1, 2, 3, 4, 5, 6, 7]]

你想要一个累积的总和,只是列表。^{}可以这样做。在

>>> from itertools import accumulate
>>> lst = [[1], [2], [3], [4], [5], [6], [7]]
>>> list(accumulate(lst))
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7]]

不使用itertools的一种方法是使用Python的sum函数连接列表。在

>>> L =  [ [1], [2], [3], [4], [5], [6], [7] ]
>>> L_extend = [ sum(L[0:i+1], []) for i in range(len(L)) ]

相关问题 更多 >

    热门问题