self.hp, self.atk_speed) L = [ Enemy(100, "张三", 10, 50, 5), Enemy(101, "李四", 15, 20, 7), Enemy(102, "王五", 5, 0, 2), Enemy(103, "莉莉", 20, 0, 13), Enemy(104, "芳芳", 17, 30, 9) ] # 解决的问题:获取满足条件的最后一个对象 # 获取最后一个活人 # 获取攻击速度大于5的最后一个敌人 # result = ListHelper.first(L[::-1],lambda enemy : enemy.hp > 0) result = ListHelper.last(L, lambda enemy: enemy.hp > 0) print(result) result = ListHelper.first(L[::-1], lambda enemy: enemy.atk_speed > 5) print(result) # 解决的问题:获取满足条件的对象总数 # 获取具有生命值的对象总数 # 获取攻击速度小于20的敌人总数 result = ListHelper.count(L, lambda enemy: enemy.hp > 0) print(result) result = ListHelper.count(L, lambda enemy: enemy.atk_speed < 20) print(result) # 解决的问题:判断列表中是否包含某个元素 # 获取列表中是否具有死人 # 获取列表中是否具有攻击速度大于10的敌人
# def find_demo01(): # for i in range(len(list01) - 1,-1,-1): # if list01[i].hp >0: # if xxx(list01[i]): # return list01[i] # def find_demo02(): # for i in range(len(list01) - 1,-1,-1): # if list01[i].atk_speed >5: # return list01[i] # def xxx(item): # return item.hp >0 result = ListHelper.last(list01, lambda e: e.atk_speed > 5) print(result.name) # 解决的问题:获取满足条件的对象总数 # 获取具有生命值的对象总数 # 获取攻击速度小于20的敌人总数 # def find_demo01(target): # count_value = 0 # for item in target: # # if item.hp >0: # if xxx(item): # count_value += 1 # return count_value # # def xxx(item): # return item.hp >0