Skip to main content
 首页 » 编程设计

python之从 For 循环内部编辑列表

2025年05月04日14wuhuacong

假设我有一个列表 mylist,我将其定义为 [1, 2, 3, 4, 5]。有没有一种简单的方法可以在 for 循环中将列表中的每个元素加倍?

我知道你可以这样做:

for i in range(len(mylist)): 
    mylist[i] *= 2 

我也知道你可以做一个列表理解:

mylist = [2*i for i in range(1, 6)

但是有没有办法做到这一点呢?

for num in mylist: 
   #code goes here 

我试过做类似的事情:

for num in mylist: 
    num *= 2 

但是 num 是一个局部变量,所以这不会修改 mylist,只是 num。有谁知道这样做的好方法吗?

请您参考如下方法:

执行此操作的通常方法是使用列表理解,直接遍历列表项,而不是通过索引间接地进行迭代。

mylist = [1, 2, 3, 4, 5] 
mylist = [2 * num for num in mylist] 
print(mylist) 

输出

[2, 4, 6, 8, 10] 

用新的列表对象替换 mylist。这通常没问题,但有时您想要修改现有对象,例如,当其他对象引用了 mylist 时。您可以通过切片分配来做到这一点。

mylist[:] = [2 * num for num in mylist]