Wie kann ich uniquify die folgende Liste in Python:Get Liste der einzigartigen Multi-Sets
all_the_ways = [(5,), (2, 2, 1), (2, 1, 2), (2, 1, 1, 1), (1, 2, 2),\
(1, 2, 1, 1), (1, 1, 2, 1), (1, 1, 1, 2), (1, 1, 1, 1, 1)]
Wunsch Ausgabe lautet:
[(5,), (2, 2, 1), (2, 1, 1, 1), (1, 1, 1, 1, 1)]
dh ich von Tupeln loswerden müssen, die die gleiche haben Satz von Zahlen, aber in anderer Reihenfolge.
Ich versuchte
set(all_the_ways)
aber nur Elemente umzusetzen.
Und wenn ich
list(map(set, all_the_ways))
die Dinge tun, immer nur noch schlimmer:
[{5}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1}]
Mit anderen Worten: Ich brauche innere Tupel zu einer Sammlung zu konvertieren, die mehrere gleiche Elemente erlaubt (set
ist nicht geeignet) und für die Permutationen von Elementen nicht die Sammlung selbst ändern (ähnlich wie C++ multiset
)
Was sollte die Ausgabe, wenn 'all_the_ways = [(2, 1, 2), (2, 2, 1)]' sein? – thefourtheye
erstes oder zweites Tupel, ist egal – tsionyx
Also sollte das Ergebnis in 'all_the_ways' sein? – thefourtheye