给出一个重复数字的列表,如何找到一个连续重复三次的数字。例如:
l1 = [1,1,2,2,3,3,3,4,4]
我想打印3号元素,因为它连续出现3次。
我尝试使用Counter
,它将其转换为dict,但不确定如何仅将键打印为最大计数值。
答案 0 :(得分:2)
在zip
中使用列表理解:
L = [1,1,2,2,3,3,3,4,4]
res = [i for i, j, k in zip(L, L[1:], L[2:]) if i == j == k] # [3]
一般化为任意数量的重复,您可以使用列表切片:
n = 3
res = [L[idx] for idx in range(len(L)-n) if len(set(L[idx: idx+n])) == 1] # [3]
答案 1 :(得分:0)
在这里,轻松。应该有帮助:
d={i:L.count(i) for i in L if L.count(i)>2}
这将返回一个重复次数超过2次的字典。在您的情况下:
{3: 3}