我试图将字典添加到列表中,但我犯了使用 += 运算符的错误。发现错误后,我注意到如果我运行
a = []
a += {'b' : 2, 'c' : 3, 'd' : 4}
print(a)
我得到 ['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
您可能想要的是
extend
函数,它以与 +=
运算符几乎完全相同的方式改变列表,并且在像 []
: 这样的文字上完全有效
>>> a = []
>>> a.extend({'b' : 2, 'c' : 3, 'd' : 4})
>>> a
['b', 'c', 'd']
>>> [].extend({'b' : 2, 'c' : 3, 'd' : 4})
但请注意,这是毫无意义的,因为扩展了匿名空列表后,您无法像访问
a
.一样访问它