コード例 #1
0
]

# 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)

# 获取攻击力最大的敌人
コード例 #2
0
ファイル: exercise05.py プロジェクト: ivoryli/myproject
    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)
コード例 #3
0
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]