У меня есть как список:Python: удаление дубликатов из списка, сохраняя при этом порядок использования словарей
>>> a = big_list(30)
>>> a
[-14, -13, 10, 7, -10, 5, 3, 10, 8, -13, 14, -12, 6, 10, 8, 7, 4, -8, -10, -3, -6, 2, -6, 3, -3, 0, -13, -14, 2, -12]
и мне нужно удалить дубликаты из Сохраняя порядка с использованием словаря
до сих пор Я преобразовал в словарь, используя этот код
def only_once(a):
i = iter(a)
print dict(zip(i,i))
выход был:
>>> only_once(a)
{2: -12, 3: 10, 4: -8, 6: 10, 8: 7, 10: 7, 14: -12, -14: -13, -13: -14, -10: -3, -6: 3, -3: 0}
Есть дубликаты, и они упорядочены в странном порядке, любые идеи о том, как преобразовать его обратно в список, сохраняя порядок и удаляя дубликаты?
Посмотрите http://docs.python.org /2/library/itertools.html#recipes и рецепт 'unique_everseen'. Если вы просто удаляете дубликаты, вам не нужно помещать фактические элементы в качестве пар ключ/значение, как вы делаете ... –
Нет необходимости искусственно использовать словарь, если ожидаемый результат не является словарем. «Набор» обычно более подходит для работы с дубликатами. –