在遍历列表时,不应该同时修改列表,因为这会导致迭代器失效或者导致意外的结果。如果需要在遍历过程中操作列表元素,可以使用一个临时的列表存储需要添加的元素和在遍历结束之后需要删除的元素,然后再统一执行。
示例代码:
# 初始化列表
nums = [1, 2, 3, 4, 5]
# 遍历列表,将列表中大于3的元素删除,同时添加新的元素
to_add = [6, 7]
to_remove = []
for i, num in enumerate(nums):
if num > 3:
to_remove.append(num)
to_add.append(num * 2)
nums[i] += 1
# 执行统一的添加和删除操作
nums.extend(to_add)
for num in to_remove:
nums.remove(num)
print(nums) # [2, 3, 4, 6, 8, 10, 7]
下一篇:遍历列表项以设置装饰值