Wie schreibe ich in Python ein Set mit einem Set?

7

Wir wissen in Python, dass eine Menge definiert werden kann, indem alle ihre Elemente wie folgt geschrieben werden:

%Vor%

Und Bücher von Python sagen alle Elemente eines Sets können einen beliebigen Datentyp haben. Wir sollten also in der Lage sein, ein Set mit einem Set zu schreiben. Ich habe versucht, es als:

zu schreiben %Vor%

Aber IDLE hat einen Fehler gemeldet:

%Vor%

Ich denke, das könnte daran liegen, dass Python versucht, es als Wörterbuch zu verstehen. Wie schreibe ich dann eine Menge, die eine Menge in Python enthält?

    
user2384994 17.05.2013, 23:11
quelle

3 Antworten

15

Die innersten Sets müssen vom Typ frozenset sein, was eine unveränderliche Version von a ist einstellen.

%Vor%

Aus den Dokumenten :

  

Klasse frozenset ([iterable])

     

Gibt ein neues Set oder ein gefrorenes Set-Objekt zurück, dessen Elemente iterierbar sind. Die Elemente eines Sets müssen hashbar sein. Um Sets von Sets darzustellen, müssen die inneren Sets eingefrorene Set-Objekte sein. Wenn iterable nicht angegeben ist, wird eine neue leere Menge zurückgegeben.

    
Jon Clements 17.05.2013, 23:14
quelle
6

Mengen können nur unveränderliche Objekte speichern, während Mengen selbst veränderbar sind. Ein Set kann also kein anderes Set enthalten.

Verwenden Sie ein fixedset :

  

Um Mengensätze darzustellen, müssen die inneren Mengen frozenset Objekte sein.

    
Ashwini Chaudhary 17.05.2013 23:14
quelle
1

Dieses Beispiel zeigt die Verwendung von frozenset :

%Vor%     
Theodros Zelleke 17.05.2013 23:21
quelle

Tags und Links