Code: Alles auswählen
>>> d=dict(1=eins)
SyntaxError: keyword can't be an expression
>>> d=dict(eins=1)
>>> d
{'eins': 1}
>>>
LG
rolgal_reloaded
Code: Alles auswählen
>>> d=dict(1=eins)
SyntaxError: keyword can't be an expression
>>> d=dict(eins=1)
>>> d
{'eins': 1}
>>>
Code: Alles auswählen
>>> dict = {1:'fuenf'}
>>> dict
{1: 'fuenf'}
>>> dict2= dict(1=fuenf)
SyntaxError: keyword can't be an expression
Code: Alles auswählen
mein_tolles_dict = { 1:"eins",
"sieben": 7}
Stimmt nicht bzw. nur fast:BlackJack hat geschrieben:Weil 1 kein gültiger Bezeichner ist!?
Code: Alles auswählen
>>> foo = {1: "eins"}
>>> foo
{1: 'eins'}
>>> bar = dict(1 = eins)
>>> bar
SyntaxError: keyword can't be an expression
`dict()` ist eine ganz normale Funktion in Python und damit gelten auch dafür die normalen Regeln, und die besagen, dass Schlüsselwortargumente gültige Bezeichner sein müssen. Wäre dem nicht so, wäre folgendes "möglich":rolgal_reloaded hat geschrieben:beim ersten Beispiel macht er aus eins - "eins".
Deshalb ist mir das nicht klar, egal was mir in dem Fall der SyntaxError sagt.
Code: Alles auswählen
def spam(1=2, 2=None, 3='foo'):
# keine Ahnung wie man hier jetzt auf die
# Argumente Bezug nehmen sollte...
# und nun ein Aufruf
spam(2=7)
Du kannst ein Dictionary übergeben, oder ein "iterable" das Schlüssel/Wert-Paare liefert:Übrigens: gibt es eine Möglichkeit mit dict(bla bla bla) ein Dictionary zu bekommen. Und zwar auch für die Möglichkeit die gescheitert ist?
Code: Alles auswählen
In [4]: dict({42: 'answer'})
Out[4]: {42: 'answer'}
In [5]: dict([(42, 'answer')])
Out[5]: {42: 'answer'}
Code: Alles auswählen
dict({42: 'answer'})
Aj, da könnte die Rechtschreibwoche wieder auflebenXtraNine hat geschrieben:Was ist den eigentlich der vorteil statt ``x = {}`` dann ``x = dict()`` zu schreiben? Ist das zweite Pythonischer? Ist ``dict()'`` nicht langsamer als ``{}``? Mir wahr so als ob ``dict()`` nicht bultine wahr.
Über die wir hier schon mal gesprochen haben.birkenfeld hat geschrieben:Letztendlich ist das eine Stilfrage.
Ja, BUILD_LIST.Leonidas hat geschrieben:Hmm, ich gehe davon aus, dass für [] analoges gilt (d.h. dass dann ein Opcode verwendeet wird), oder?
Code: Alles auswählen
In [11]: import dis
In [12]: def f():
....: return ()
....:
In [13]: dis.dis(f)
2 0 BUILD_TUPLE 0
3 RETURN_VALUE