tav*_*ndo -6 python list extend
我正在尝试以如下方式扩展列表列表:
# Consider the following list of lists
l_Of_l = [ [1], [2], [3], [4], [5], [6], [7]]
Run Code Online (Sandbox Code Playgroud)
期望的结果是:
l_extended = [ [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]]
Run Code Online (Sandbox Code Playgroud)
所以基本上列表的大小在累积扩展后保持不变。
编辑:
这是我最初所做的:
l_Of_l = [ [1], [2], [3], [4], [5], [6], [7]]
lista = []
for i in l_Of_l:
lista.extend(i)
print(list([i for i in lista]))
Run Code Online (Sandbox Code Playgroud)
但后来的结果是:
[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]
Run Code Online (Sandbox Code Playgroud)
有谁知道如何以正确的方式实现这一目标?
使用 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]]
Run Code Online (Sandbox Code Playgroud)