获取python列表中第一个元素的索引

获取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

我有一张这样的清单:

[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.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]