For 循环、追加和 += 增量运算符
For-loop, append, and += increment operator
a=[]
a.append(0)
a.append(0)
print(a)
for i in a:
i+=1
print(a)
我认为它应该打印 [0,0] [1,1]
但它打印 [0,0] [0,0]
.
怎么了?
当您使用 for i in a
时,在每次迭代中您将 a
的一个元素分配给名为 i
的变量,并且当您对 i
执行操作时],更改不会应用于 a
的元素。尝试:
for i in range(0, len(a)):
a[i] += 1
您正在更改 i
的值,但并未更改列表 a
的元素。
如果你想改变那个列表的元素的值,你可以这样做:
a=[]
a.append(0)
a.append(0)
print(a)
for index, element in enumerate(a):
element+=1
a[index] = element
print(a)
您需要更改 a
中每个元素的值而不是 i
中的值,因为这不会更改 a
中的元素。要更改 a
上的每个元素,您可以执行以下操作:
a = [0,0]
print(a) # [0,0]
for i in range(len(a)):
a[i] += 1
print(a) # [1,1]
或使用函数 enumerate()
如果您想遍历列表而不是范围:
a = [0,0]
print(a) # [0,0]
for index, _ in enumerate(a):
a[index] += 1
print(a) # [1,1]
a=[]
a.append(0)
a.append(0)
print(a)
for i in a:
i+=1
print(a)
我认为它应该打印 [0,0] [1,1]
但它打印 [0,0] [0,0]
.
怎么了?
当您使用 for i in a
时,在每次迭代中您将 a
的一个元素分配给名为 i
的变量,并且当您对 i
执行操作时],更改不会应用于 a
的元素。尝试:
for i in range(0, len(a)):
a[i] += 1
您正在更改 i
的值,但并未更改列表 a
的元素。
如果你想改变那个列表的元素的值,你可以这样做:
a=[]
a.append(0)
a.append(0)
print(a)
for index, element in enumerate(a):
element+=1
a[index] = element
print(a)
您需要更改 a
中每个元素的值而不是 i
中的值,因为这不会更改 a
中的元素。要更改 a
上的每个元素,您可以执行以下操作:
a = [0,0]
print(a) # [0,0]
for i in range(len(a)):
a[i] += 1
print(a) # [1,1]
或使用函数 enumerate()
如果您想遍历列表而不是范围:
a = [0,0]
print(a) # [0,0]
for index, _ in enumerate(a):
a[index] += 1
print(a) # [1,1]