Kal*_*lol 0 python iterator list-comprehension list
我有一个这样的清单
l=[1,1,1,1,2,2,2,3,3,3,3,3,3,4,4,5,6,6,6,5,5,5,7,7,8,8,8,8,8,9,9,9,10,10]
Run Code Online (Sandbox Code Playgroud)
现在我只想连续选择一个重复值,所以输出应该是这样的,
l=[1,2,3,4,5,6,5,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)
我可以使用 for 循环检查下一个值和前一个值并附加到列表中,但在这种情况下执行时间很长,寻找最有效的快捷方式。
您可以使用itertools.groupby对连续值进行分组并仅保留分组键:
from itertools import groupby
[k for k,_ in groupby(l)]
# [1, 2, 3, 4, 5, 6, 5, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)