Как я могу проверить, есть ли дубликаты в плоском списке? - PullRequest
150 голосов
/ 09 октября 2009

Например, для списка ['one', 'two', 'one'] алгоритм должен вернуть True, а для ['one', 'two', 'three'] он должен вернуть False.

Ответы [ 12 ]

0 голосов
/ 25 февраля 2019

Более простое решение заключается в следующем. Просто отметьте True / False с помощью метода панд .duplicated(), а затем возьмите сумму. Также см. pandas.Series.duplicated - документация для pandas 0.24.1

import pandas as pd

def has_duplicated(l):
    return pd.Series(l).duplicated().sum() > 0

print(has_duplicated(['one', 'two', 'one']))
# True
print(has_duplicated(['one', 'two', 'three']))
# False
0 голосов
/ 05 февраля 2019

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

def dupes(num_list):
    unique = []
    dupes = []
    for i in num_list:
        if i not in unique:
            unique.append(i)
        else:
            dupes.append(i)
    if len(dupes) != 0:
        return False
    else:
        return True
...