一个非常优雅的方式是使用生成器表达式参数,与创建一个临时列表相比更加高效。
nums = [1, 5, 3, 7]
# 计算nums中各元素的平方和
s = sum(x * x for x in nums)
portfolio = [
{"name": "GOOG", "shares": 50},
{"name": "YHOO", "shares": 75},
{"name": "AOL", "shares": 20},
{"name": "SCOX", "shares": 65}
]
# 输出字典列表中最小shares值
min_shares = min(p["shares"] for p in portfolio)
print(min_shares) # 20
# 输出字典列表中最小shares对应字典记录
min_portfolio = min(portfolio, key=lambda p: p["shares"])
print(min_portfolio) # {"name": "AOL", "shares": 20}