Как найти дубликат списка, который повторяется три раза подряд - PullRequest
0 голосов
/ 04 ноября 2018

Учитывая список повторяющихся чисел, как найти число, которое повторяется три раза подряд. Например:

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

Я хочу напечатать элемент № 3, который появляется три раза подряд.

Я попытался использовать Counter, который преобразует это в dict, но не уверен, как просто напечатать ключ, который используется в качестве значения максимального количества.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Здесь, Легко. Это должно помочь:

d={i:L.count(i) for i in L if L.count(i)>2}

Это возвращает диктет с номером, который повторяется более 2 раз. В вашем случае:

{3: 3}
0 голосов
/ 04 ноября 2018

Использование понимания списка с 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...