关于 for 循环对列表元素删除操作的问题。
感谢各位点进来。
目标希望用方法对列表中某符合条件的对象进行删除操作,
以下两种for循环中,对下标进行循环的for循环可以成功删除,但对列表中元素进行循环则无法成功删除。
希望论坛各位不吝赐教,谢谢!
class Enemy:
def __init__(self, name, health, attack, defence):
self.name = name
self.health = health
self.attack = attack
self.defence = defence
list_enemies = [
Enemy("灭霸", 0, 0, 0),
Enemy("灭灭", 10, 10, 10),
Enemy("霸霸", 1000, 1000, 1000),
Enemy("霸灭", 10000, 10000, 10000)
]
删除列表数据中,最后一个数字参数 < 10 的数据\
def del04():
为什么这种for循环无法删除掉数据
global list_enemies
list_enemies_copy = list_enemies[::-1]
for item in list_enemies_copy:
if item.defence < 10:
del item\
list_enemies = list_enemies_copy[::-1]
而这种for循环却可以删除掉呢?
for i in range(-1, -len(list_enemies)-1, -1):
if list_enemies[i].defence < 10:
del list_enemies[i]
del04()
for item_result in list_enemies:
print(item_result.name)
推荐文章: