如果我们想基于一个字典的子集创建另外一个字典,该如何做?
利用 字典推导式 来解决问题:
prices = {
'ACME': 45.23,
'AAPL': 612.78,
'IBM': 205.55,
'HPQ': 37.20,
'FB': 10.75
}
p1 = {key:value for key, value in prices.items() if value > 200}
print(p1)
大部分使用字典推导式解决的问题其实也可以通过创建元组序列然后将其传给 dict()
函数来完成,比如:
p2 = dict((key, value) for key, value in prices.items() if value > 200)
print(p2)
但是相比来看,字典表达式的方案更加清晰,运行速度也比创建元组并转换字典快很多。如果要考虑性能因素,建议直接使用字典推导式。