按值分组列表索引

2024-04-19 03:00:00 发布

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

比如:

l = [0,0,0,1,1,1,2,2,2,2,3,3]

我想要:

[[0,1,2], [3,4,5], [6,7,8,9], [10,11]]

现在,我正在做:

[[elem[0] for elem in list(g)] for k, g in itertools.groupby(
enumerate(l), lambda x: x[1])]

有没有更好更快更简单的方法

谢谢


Tags: 方法lambdainforlistitertoolsgroupbyelem
1条回答
网友
1楼 · 发布于 2024-04-19 03:00:00

这看起来很简单

result = []
last = None
for i, this in enumerate(a):
    if this != last:
        sub = []
        result.append(sub)
        last = this
    sub.append(i)

相关问题 更多 >