例如,如果我有一个列表[1,2,2,3,2,2,1]
,我想返回带有索引(0,1,3,4,6)的[1,2,3,2,1]
。
我不熟悉groupby,我学会了如何消除相邻的重复项,但是可以通过groupby()提取索引吗?谢谢。
是,有可能,您可以将itertools.groupby
与enumerate()
和右边的key=
结合使用>
例如:
lst = [1,2,2,3,2,2,1] from itertools import groupby rv, index = [], [] for v, g in groupby(enumerate(lst), key=lambda k: k[1]): rv.append(v) index.append(next(g)[0]) print(rv) print(index)
打印:
[1, 2, 3, 2, 1]
[0, 1, 3, 4, 6]