获取python列表中第一个元素的索引
我有一张这样的清单: [21]、[22,1]、[23,2]、[24,1,0,4]、[25,2,3]] 我想在一个新列表中附加每个子列表第一项的索引,同时计算所有子列表中的所有元素。新列表的每个索引取决于每个子列表的长度。我想要的结果是: [0,1,3,5,9] 我不想使用numpy或任何其他库。获取python列表中第一个元素的索引,python,list,Python,List,我有一张这样的清单: [21]、[22,1]、[23,2]、[24,1,0,4]、[25,2,3]] 我想在一个新列表中附加每个子列表第一项的索引,同时计算所有子列表中的所有元素。新列表的每个索引取决于每个子列表的长度。我想要的结果是: [0,1,3,5,9] 我不想使用numpy或任何其他库。 谢谢 你需要这样的东西: l = [[21], [22, 1], [23, 2], [24, 1, 0, 4], [25, 2, 3]] n = [] p = 0 for s1 in l: n
谢谢 你需要这样的东西:
l = [[21], [22, 1], [23, 2], [24, 1, 0, 4], [25, 2, 3]]
n = []
p = 0
for s1 in l:
n.append(p)
p += len(s1)
print(n)
累积从零开始的长度:
L = [[21], [22, 1], [23, 2], [24, 1, 0, 4], [25, 2, 3]]
from itertools import accumulate
idx = [0,*accumulate(map(len,L[:-1]))]
print(idx) # [0, 1, 3, 5, 9]
您需要创建一个四循环来遍历主列表,在主列表中创建另一个for循环来遍历每个项目像
itertools
这样的内置模块怎么样?使用当前版本的Python,您可以执行list(itertools.accumulate(l,lambda total,x:total+len(x),initial=0))[:-1]