Seite 1 von 1
Erzeugung von sets und dictionaries
Verfasst: Samstag 22. November 2014, 21:15
von Judge
Hallo zusammen,
Ich lerne Python noch und stoße bei dem dazu verwendetem Buch (Heads first) zwischen den Kapiteln 5 und 6 auf eine Frage :
Als erstes wird einen erklärt was ein Set ist, und das man es, neben den anderen Schreibweisen, sich wie folgt direkt erzeugen und befüllen kann :
Mein_Set = {1, 'test' }
I'm nächsten Kapitel wird aber gesagt, dass die geschweiften Klammern ein Dictionary erzeugen würden:
Mein_Dict = {}
Was stimmt den nun / wie ist das zu verstehen?
Vielen Dank für die Hilfe!
Re: Erzeugung von sets und dictionaries
Verfasst: Samstag 22. November 2014, 21:23
von BlackJack
@Judge: Es stimmt beides. Mit ``{1, 'test'}`` erzeugt man beispielsweise ein `set` mit zwei Elementen, und mit ``{'answer': 42}`` erzeugt man ein `dict` mit einem Schlüssel/Wert-Paar. Der Sonderfall wenn man nur die Klammern ohne Inhalt verwendet, erzeugt ein leeres `dict` und halt kein leeres `set`. Wenn man ein leeres `set` braucht, muss man das über den benannten Typ erstellen:
Code: Alles auswählen
In [13]: type({1, 'test'})
Out[13]: set
In [14]: type({'answer': 42})
Out[14]: dict
In [15]: type({})
Out[15]: dict
In [16]: type(set())
Out[16]: set
Re: Erzeugung von sets und dictionaries
Verfasst: Samstag 22. November 2014, 21:49
von pillmuncher
Intuitiver wäre vielleicht, wenn literale dicts so erstellt würden:
Dann könnte man literale sets so erstellen wie derzeit dicts. Dicts gab es in Python halt schon lange vor sets, deswegen hat niemand daran gedacht, dass es mal zu solchen Fragen kommen könnte. Hätte man vielleicht auch mit Python 3 ändern können, da wäre eine weitere Imkompatibilität kaum aufgefallen

Re: Erzeugung von sets und dictionaries
Verfasst: Sonntag 23. November 2014, 14:43
von darktrym
Ich empfinde das als sehr angenehm, das nicht jeder Mist seinen eigenen Syntax hat. Syntaktisch kann man auch den Indexzugriff auf Listen nicht von Dictionary Zugriffen oder Zeichenketten unterscheiden.
Re: Erzeugung von sets und dictionaries
Verfasst: Sonntag 23. November 2014, 19:28
von Judge
Erstmal: Danke an alle beteiligten!

Das sind halt solche Dinge, die einen autodidaktischen Beginner erstmal verwirren. Vielen Dank für die Aufklärung!