我有以下代码:
sales_data = [[12, 17, 22], [2, 10, 3], [5, 12, 13]]
scoops_sold = 0
我最初写道:
for location in sales_data:
print(location)
for element in location:
scoops_sold + element
print(scoops_sold)
在四处乱逛之后,我发现我只是在=
符号后面缺少了一个+
。
为什么+=
加上和int。一个列表到另一个列表而不仅仅是+
?
答案 0 :(得分:4)
当前,所有先前的答案(包括已接受的答案)完全误导,请注意这两个不同 python结构之间的区别:
+
运算符从两个操作数生成一个 new 列表:
>>> a = b = [1]
>>> a = a + [2]
>>> a, b
[1, 2], [1]
在这里,a
和b
最初都指向相同列表。然后,我们创建了一个新列表,并将其反弹到变量a
+=
运算符,修改现有列表
>>> a = b = [1]
>>> a += [2]
>>> a, b
[1, 2], [1, 2]
在这里,a
和b
最初都指向相同列表。然后,我们修改了相同的列表。
要点... a = a + b
的语法不是缩写 a += b
答案 1 :(得分:0)
+=
是scoops_sold = scoops_sold + element
的缩写。拥有scoops_sold + element
可以计算结果,但不会将其存储到scoops_sold = scoops_sold + element
正在计算结果并将其分配给scoops_sold的任何变量中。