Counter
и defaultdict
структуры данных из модуля collections
идеально подходят для варианта использования, здесь представлен другой подход, использующий нормальную dict
структуру данных, которая может быть более интуитивной для начинающих при понимании подхода.
Подход :
Шаг-1: Создание словаря с элементом в качестве ключа и его вхождениями в качестве значения.
Шаг-2 Отфильтруйте элементы, вхождения которых меньше чем 2, другими словами, выберите элементы, вхождения которых больше 1.
def get_duplicates(some_list):
frequency_counter = {}
# Step-1
for item in some_list:
if item in frequency_counter:
frequency_counter[item] += 1
else:
frequency_counter[item] = 1
# Step-2
return [item for item, count in frequency_counter.items() if count > 1]
In [2]: get_duplicates(['a','b','c','b','d','m','n','n'])
Out[2]: ['b', 'n']