Ich versuche, eine Reihe von Mengen in Python zu erstellen. Ich kann nicht herausfinden, wie es geht.
Beginnend mit dem leeren Satz xx
:
xx = set([])
# Now we have some other set, for example
elements = set([2,3,4])
xx.add(elements)
aber ich verstehe
TypeError: unhashable type: 'list'
oder
TypeError: unhashable type: 'set'
Ist es möglich, eine Reihe von Mengen in Python zu haben?
Ich habe es mit einer großen Sammlung von Mengen zu tun und möchte in der Lage sein, keine doppelten Mengen zu behandeln (eine Menge B von Mengen A1, A2, ...., An würde zwei Mengen "annullieren", wenn Ai = Aj)
quelle
set(map(frozenset, t))
Verwenden Sie nach
frozenset
innen.quelle
Ich hatte also genau das gleiche Problem. Ich wollte eine Datenstruktur erstellen, die als Satz von Sätzen funktioniert. Das Problem ist, dass die Mengen unveränderliche Objekte enthalten müssen . Was Sie also tun können, ist es einfach als eine Reihe von Tupeln zu machen. Das hat bei mir gut funktioniert!
quelle
A.add( (4,3,2)); A.add((2,4,3)); A.add((2,3,4))
werden drei verschiedene Elemente hinzuzufügen, während die ursprüngliche Frage zu „Menge von Mengen“ ist, was das bedeutet(2,3,4)
,(4,3,2)
,(2,4,3)
gleich sind.Ab 2020 wird in der offiziellen Python-Dokumentation empfohlen
frozenset
, Sätze darzustellen.quelle