У меня есть список целых чисел.странное поведение при удалении дубликатов в списке
Что бы я хотел сделать, это отсортировать их и удалить все дубликаты. Я видел два разных решения в Интернете. Оба, кажется, дают тот же результат, который не тот, который я ожидаю.
a = integer_combinations(5, 5)
print a
>>[4, 8, 16, 32, 9, 27, 81, 243, 16, 64, 256, 1024, 25, 125, 625, 3125]
b = sorted(a)
print b
>>[4, 8, 9, 16, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125]
c = dict().fromkeys(sorted(a)).keys()
print c
>> [32, 64, 4, 1024, 625, 8, 9, 256, 16, 81, 243, 3125, 25, 27, 125]
Другой метод, с помощью наборов:
d = list(set(b))
print d
>> [32, 64, 4, 1024, 625, 8, 9, 256, 16, 81, 243, 3125, 25, 27, 125]
What I expect is :
>>[4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125]
ли кто-то знает причину такого поведения?
Спасибо!
Собственно, это на самом деле то, что я сделал. , , порядок обращений функций. Ваш способ сделать это кажется лучше. – jlengrand
Также рассмотрите возможность использования frozenset, когда вы знаете, что он не будет изменчивым. В этом случае не имеет значения, но позволяет хешировать, таким образом, размещать в другом наборе или словаре, если вы делаете это для нескольких целых комбинаций. –
Спасибо, я смотрю на это. Много нового словарного запаса для меня здесь :) – jlengrand