Как проверить список списков на наличие дубликатов
Есть List[List[int]].
Например check([[1 1], [3], [2 2]]) - вернет True, тк дубликатов нет;
check([[1 1], [3], [2 2], [3]]) - False, тк есть 3
Пытался через set что то реализовать но ругается что list unhashable. Какие есть варианты?
Внутри только список из одинаковых чисел
Ответы (3 шт):
Автор решения: Leksor
→ Ссылка
def has_duplicates(lists):
for l in lists:
if len(l) != len(set(l)):
return True
return False
lists = [[1, 2, 3], [4, 5, 6], [1, 2, 3]]
print(has_duplicates(lists)) # Output: True
Автор решения: daniskzn
→ Ссылка
Вот мой вариант:
from collections import Counter
from typing import List
def check_duplicates(lst: List[List[int]]) -> bool:
cnt = Counter(list(map(tuple, lst)))
for (k, v) in cnt.items():
if v > 1:
return False
return True
Автор решения: Danis
→ Ссылка
def check(arr):
arr = [(el[0], len(el)) for el in arr]
return len(arr) == len(set(arr))