Я смотрел на это Разницу между кортежами и замороженными наборами в Python и привел меня на этот вопрос для моей проблемы
По сути, мне нужен тип данных, похожий на кортеж, но неупорядоченный, или на замороженный набор, но допускающий дублирование (я понимаю, что наборы по определению не могут этого сделать, но я просто объясняю, что хочу): хешируемый, неупорядоченный, разрешены дубликаты.
Я пытаюсь создать набор данных этого типа для проверки различных значений, таких как (1,2,3), следует рассматривать так же, как (1,3,2). Я знаю, что одним из решений было бы использовать список, упорядочить его, а затем сделать его кортежем, но мне приходится делать это много раз, и длина кортежа может быть большой, поэтому я бы предпочел не сортировать каждый раз, если это возможно.
РЕДАКТИРОВАТЬ:
проблема немного изменилась. теперь у меня есть список кортежей, например: list_tuple = [(2, 2, 2), (2, 2, 2), (2, 1, 1)]
проблема не сильно изменилась, у кортежей есть порядок, который имеет значение, но порядок кортежей не имеет значения. так, например, это идентично предыдущему: [(2, 2, 2), (2, 1, 1), (2, 2, 2)] я получу много из них, которые я хочу добавить к набор, чтобы я мог подсчитать количество различных списков кортежей. так что на самом деле у меня та же проблема с порядком, не имеющим значения, и разрешенными дубликатами, за исключением того, что вместо целых чисел мы имеем дело с кортежами.
Я предположил, что должен просто отсортировать список кортежей, затем сделать список кортежем, и он может войти в набор и работать правильно. Я знаю, что сказал, что не хочу сортировать, но я не вижу другого пути.
Спасибо
collections.Counter
? - person Aran-Fey   schedule 25.10.2019{{'a', 'a', 'b'}}
(чтобы создать синтаксис для многошаговой обработки) иCounter({'a': 2, 'b': 1})
мало значимой разницы. - person chepner   schedule 26.10.2019multiset
. - person martineau   schedule 26.10.2019