我正在尝试使用for循环更新列表中的元素。这是代码。
x = 90
y = 84
z = 32
list1 = [x, y, z]
for i in list1:
i = 45
print(list1)
但是,这并不像我预期的那样有效,即它没有打印出[45,45,45]
。
这是为什么?除了创建一个新的列表之外,还有什么解决方案。
答案 0 :(得分:1)
您将变量i
中的列表值逐个存储,然后重新分配i
。 i
与list元素具有相同的值,但它们完全不同。重新分配它不会改变列表。
而是尝试使用索引遍历列表并在该位置重新分配列表元素本身。
list1 = [1, 2, 3]
for i in range(len(list1)):
list1[i] = 45
print(list1)
# [45, 45, 45]
答案 1 :(得分:1)
解决方案:
list = [12,43,24]
for n,i in enumerate(list):
list[n] = 45
print(list) #[45, 45, 45]
"这是错误的 - >"因为当你为我做...时,你使用列表副本
答案 2 :(得分:0)
这是另一种更简单的解决方案,通过添加新的变量计数来实现您想要的目标,该变量计数用于跟踪要在列表/数组中更新的索引位置:
x = 90
y = 84
z = 32
list1 = [x, y, z]
count = 0
for i in list1:
list1[count] = 45
count+=1
print(list1) #output result = [45, 45, 45]