为什么+ =相加和int。一个列表到另一个列表,而不仅仅是+?

时间:2020-04-04 04:17:46

标签: python python-3.x

我有以下代码:

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。一个列表到另一个列表而不仅仅是+

2 个答案:

答案 0 :(得分:4)

当前,所有先前的答案(包括已接受的答案)完全误导,请注意这两个不同 python结构之间的区别:

  1. +运算符从两个操作数生成一个 new 列表:

    >>> a = b = [1]
    >>> a = a + [2]
    >>> a, b
    [1, 2], [1]
    

    在这里,ab最初都指向相同列表。然后,我们创建了一个列表,并将其反弹到变量a

  2. +=运算符,修改现有列表

    >>> a = b = [1]
    >>> a += [2]
    >>> a, b
    [1, 2], [1, 2]
    

    在这里,ab最初都指向相同列表。然后,我们修改了相同的列表。

要点... a = a + b的语法不是缩写 a += b

答案 1 :(得分:0)

+=scoops_sold = scoops_sold + element的缩写。拥有scoops_sold + element可以计算结果,但不会将其存储到scoops_sold = scoops_sold + element正在计算结果并将其分配给scoops_sold的任何变量中。