为什么我不能在 Python 中以这种方式递增列表?

Why can I not increment a list this way in Python?

语言是Python。我正在尝试将 'a' 添加到列表 'sumarr'.

中的所有值

这是我的代码:

for b in sumarr:
    b+=a

为什么这不起作用?我知道我可以像这样使用列表理解:

sumarr = [b+a for b in sumarr]

但是为什么第一种方法不行呢?

b 是局部变量 - 列表项的 引用 ,而不是列表中的实际项。

如果你这样做 print( b += a ) 你会看到预期的数字,但它不会将该结果放回你的列表中。

#! /usr/bin/env python3

sumarr = [1, 2, 3, 4]
a = 3

for b in range( len(sumarr) ):
    sumarr[b] += a

for b in sumarr:
    print( b )

4
5
6
7

因为这不是 python 的工作方式。

I am trying to add 'a' to all of the values in a list 'sumarr'

python数据结构中定义了一些方法: here the documentation python 3.9.0

这些是您可以用来在列表中添加元素的一些官方方法。

# example 1.
new_list = []
for i in range(n):
  new_list.append(i) 

# List comprehension:
new_list = [i for i in range(n)]

# example 2.
lang = "Python"
a = []
for e in lang:
    a.append(ord(e))

b = [ord(e) for e in lang]

print(a)
print(b)