如何查找重复三次的列表重复项

时间:2018-11-04 19:48:18

标签: python python-2.7 list

给出一个重复数字的列表,如何找到一个连续重复三次的数字。例如:

l1 = [1,1,2,2,3,3,3,4,4]

我想打印3号元素,因为它连续出现3次。

我尝试使用Counter,它将其转换为dict,但不确定如何仅将键打印为最大计数值。

2 个答案:

答案 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}