问题
想创建一个字典,本身是另一个字典的子集
解决方案
字典推导式(dictionary comprehension)
示例1:
prices={
'apple':11,
'AAPL':1.23,
'QQ':222,
'WE':45.23
}
#make a dictionary of all prices over 40
p1 = {key:value for key,value in prices.items() if value>40}
print p1
#output:{'QQ': 222, 'WE': 45.23}
#make a dictionary of tech stocks
tech_names = {'AAPL','WE'}
p2 = {key:value for key,value in prices.items() if key in tech_names}
print p2
#output:{'AAPL': 1.23, 'WE': 45.23}
通过字典推导式完成的,也可以通过创建元组序列,然后将它们传给dict()函数来完成;
示例2:
p3 = dict((key,value) for key,value in prices.items() if value>5)
print p3
#output:{'QQ': 222, 'WE': 45.23, 'apple': 11}
但是,字典推导式的方案更加清晰,实际运行起来会快很多。
网友评论