为什么我不能在 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)
语言是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)