Пример #1
0
                                          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的敌人
Пример #2
0
# 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