sha*_*iny 0 python variables equation
我尝试将字典添加到列表中,但我错误地使用了 += 运算符。发现该错误后,我注意到如果我运行
a = []
a += {'b' : 2, 'c' : 3, 'd' : 4}
print(a)
Run Code Online (Sandbox Code Playgroud)
我得到['b','c','d']。如果我运行同样的事情,但我直接引用 [],我会收到错误。
SyntaxError: 'list' is an illegal expression for augmented assignment
我期望结果是相同的,但显然 x 的处理方式有所不同,即使它的值设置为 []。
正如错误所述,+=是一个增强赋值运算符。左侧应该是变量名。您不能在左侧是文字表达式的情况下使用它,就像[]您不能在文字上使用常规赋值运算符一样:
>>> [1, 2, 3] = [2, 3, 4]
File "<stdin>", line 1
[1, 2, 3] = [2, 3, 4]
^
SyntaxError: cannot assign to literal
Run Code Online (Sandbox Code Playgroud)
您可能想要的是该extend函数,它以与运算符几乎完全相同的方式改变列表+=,并且对于像这样的文字完全有效[]:
>>> a = []
>>> a.extend({'b' : 2, 'c' : 3, 'd' : 4})
>>> a
['b', 'c', 'd']
>>> [].extend({'b' : 2, 'c' : 3, 'd' : 4})
Run Code Online (Sandbox Code Playgroud)
但请注意,这是毫无意义的,因为扩展了匿名空列表后,您无法像访问a.