Найти повторяющиеся списки в списке

У меня есть массив

mylist = [[1,'a'], [2, 'b'], [[1, 'a'], [3, 'c'], [2, 'b']]

Из него я хочу получить

newlist = [[1, 'a'], [2, 'b']]

То есть найти все повторяющиеся списки и закинуть их в массив, пробовал делать так

from collections import Counter
mylist = [[1,'a'], [2, 'b'], [[1, 'a'], [3, 'c'], [2, 'b']]
[k for k,v in Counter(mylist).items() if v>1]

Но получаю ошибку

unhashable type 'list'

Ответы (1 шт):

Автор решения: CrazyElf

Можно сделать вашим способом, если преобразовать list в tuple, которое уже hashable, а после его обработки через Counter - обратно в list:

from collections import Counter
mylist = [[1,'a'], [2, 'b'], [1, 'a'], [3, 'c'], [2, 'b']]
[list(k) for k,v in Counter(map(tuple, mylist)).items() if v>1] 

На выходе:

[[1, 'a'], [2, 'b']]

Заметьте, что у вас лишняя [ в середине списка, из-за которой ваша ошибка не воспроизводится, а получается другая ошибка. Ну, либо у вас не хватает завершающей ] и тогда это немного другая задача - надо сначала ещё вложенные списки развернуть.

→ Ссылка