Ich lerne Python und habe eine Anfängerfrage zum Initialisieren von Sets. Durch Tests habe ich festgestellt, dass ein Set folgendermaßen initialisiert werden kann:
my_set = {'foo', 'bar', 'baz'}
Gibt es irgendwelche Nachteile, wenn man es auf diese Weise macht, im Gegensatz zu der Standardmethode von:
my_set = set(['foo', 'bar', 'baz'])
oder ist es nur eine Frage des Stils?
python
python-2.7
set
fvrghl
quelle
quelle
Antworten:
Es gibt zwei offensichtliche Probleme mit der Set-Literal-Syntax:
Es ist nicht vor Python 2.7 verfügbar
Es gibt keine Möglichkeit, eine leere Menge mit dieser Syntax auszudrücken (mit
{}
erstellt ein leeres Diktat)Diese können für Sie wichtig sein oder auch nicht.
Der Abschnitt der Dokumente, in dem diese Syntax beschrieben wird, befindet sich hier .
quelle
Vergleichen Sie auch den Unterschied zwischen
{}
undset()
mit einem einzelnen Wortargument.aber beides
a
undb
sind natürlich sätze.quelle
set([])
lieber an den Mengenkonstruktor als nur daranset()
.set()
Nimm immer ein einziges Argument. Eine einzige iterable.Aus der Python 3-Dokumentation ( dasselbe gilt für Python 2.7 ):
in Python 2.7:
Beachten Sie, dass dies
{}
auch fürmap
/ verwendet wirddict
:Man kann auch eine umfassende Syntax verwenden, um Mengen zu initialisieren:
quelle
Sie müssen
empty_set = set()
einen leeren Satz initialisieren.{}
Ich bin leer dictionaty.quelle