使用for循环更改列表中所有元素的值

时间:2018-06-02 22:38:53

标签: python python-3.x

我正在尝试使用for循环更新列表中的元素。这是代码。

x = 90
y = 84
z = 32
list1 = [x, y, z]
for i in list1:
    i = 45

print(list1)

但是,这并不像我预期的那样有效,即它没有打印出[45,45,45]。 这是为什么?除了创建一个新的列表之外,还有什么解决方案。

3 个答案:

答案 0 :(得分:1)

您将变量i中的列表值逐个存储,然后重新分配ii与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]