Это можно сделать с помощью itertools.groupby , нам сначала нужно будет отсортировать наш список, а затем мы можем взять только k
, если соответствующая list(g)
имеет len > 1
в новом списке.,Затем мы могли бы использовать max
в этом списке
from itertools import groupby
lista = [1, 5, 3, 4, 1, 5, 7]
max_dup = -1
lrg_dup = [k for k, g in groupby(sorted(lista)) if len(list(g)) > 1]
if lrg_dup:
max_dup = max(lrg_dup)
# 5
Expanded:
lrg_dup = []
listb = sorted(lista)
for k, g in groupby(listb):
if len(list(g)) > 1:
lrg_dup.append(k)