] # 1. filter 过滤,类似于ListHelper.find_all. # 过滤出编号大于102的敌人 # for item in filter(lambda e: e.id > 102, list01): # print(item.id) # # for item in ListHelper.find_all(list01, lambda e: e.id > 102): # print(item.id) # 2. map 映射,类似于ListHelper.select # 映射出所有敌人的姓名 for item in map(lambda e: e.name, list01): print(item) for item in ListHelper.select(list01, lambda e: e.name): print(item) # # 按照血量升序排列,类似于ListHelper.order_by # for item in sorted(list01,key = lambda e:e.hp ): # print(item.hp) # # # 按照血量降叙排列 # for item in sorted(list01,key = lambda e:e.hp,reverse=True): # print(item.hp) # ListHelper.order_by(list01,lambda e:e.hp) # for item in list01: # print(item.hp) # 获取攻击力最大的敌人
Enemy(104, "芳芳", 17, 30, 9) ] # 1. 查找所有死人. for item in ListHelper.find_all(L, lambda enemy: enemy.hp == 0): print(item) print() # 2. 查找编号是101的敌人 target = ListHelper.first(L, lambda enemy: enemy.id == 101) print(target) print() # 3. 查找所有活人. for item in ListHelper.find_all(L, lambda enemy: enemy.hp > 0): print(item) print() # 4. 计算所有敌人攻击力总和 result = ListHelper.sum(L, lambda enemy: enemy.atk) print(result) print() # 5. 查找所有攻击速度在5--10之间的敌人 for item in ListHelper.find_all(L, lambda enemy: 5 <= enemy.atk_speed <= 10): print(item) print() # 6. 查找所有敌人的姓名 for item in ListHelper.select(L, lambda enemy: enemy.name): print(item)
print(result.name) # 3. 查找所有活人. for item in ListHelper.find_all(list01, lambda e: e.hp > 0): print(item.name) # 4. 计算所有敌人攻击力总和 result = ListHelper.sum(list01, lambda e: e.atk) print(result) # 5. 查找所有攻击速度在5--10之间的敌人 for item in ListHelper.find_all(list01, lambda e: 5 <= e.atk_speed <= 10): print(item.name) # 6. 查找所有敌人的姓名 # for item in ListHelper.select(list01,lambda e:e.name): # print(item) # 结果是生成器对象 result = ListHelper.select(list01, lambda e: e.name) # 生成器 --> 列表 result = list(result) for item in result[1:3]: print(item) # 解决的问题:获取满足条件的最后一个对象 # 获取最后一个活人 # 获取攻击速度大于5的最后一个敌人 # def find_demo01(): # for i in range(len(list01) - 1,-1,-1): # if list01[i].hp >0: # if xxx(list01[i]): # return list01[i]