找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1884|回复: 1

[求助] 关于for循环对列表元素删除操作的问题。

2

主题

2

帖子

2

积分

贫民

积分
2
narmisk 发表于 2019-6-17 08:55:49 | 显示全部楼层 |阅读模式
感谢各位点进来。
目标希望用方法对列表中某符合条件的对象进行删除操作,
以下两种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)

回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2019-6-17 16:04:28 | 显示全部楼层
class 要先实例化。
回复 支持 0 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表