假设我有一个列表 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]
