gpt4 book ai didi

python - 替换 Python 列表中的重复元素?

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:32 24 4
gpt4 key购买 nike

例如,如果我有如下列表:

[3, 3, 3, 3, 3, 3, 100, 1, 1, 1, 1, 1, 1, 200, 3, 3, 3, 100, 1, 1, 1]

如何删除重复的元素并表示相同的元素后跟重复的次数?示例输出:

[3, 6, 100, 1, 6, 200, 3, 3, 100, 1, 3]

其中 3 重复 6 次...1重复6次……以此类推

最佳答案

您可以使用 itertools.groupby这里有一个生成器函数:

>>> from itertools import groupby                                              
>>> lst = [3, 3, 3, 3, 3, 3, 100, 1, 1, 1, 1, 1, 1, 200, 3, 3, 3, 100, 1, 1, 1]
>>> def solve(seq):
for k, g in groupby(seq):
length = sum(1 for _ in g)
if length > 1:
yield k
yield length
else:
yield k
...
>>> list(solve(lst))
[3, 6, 100, 1, 6, 200, 3, 3, 100, 1, 3]

关于python - 替换 Python 列表中的重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28661343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com