从字典中提取子集

1.最简单的方式就是使用字典推导

prices = {
    'ACME': 45.23,
    'AAPL': 612.78,
    'IBM': 205.55,
    'HPQ': 37.20,
    'FB': 10.75
}
battal
= sorted(zip(prices.values(),prices.keys())) print(battal) #[(10.75, 'FB'), (37.2, 'HPQ'), (45.23, 'ACME'), (205.55, 'IBM'), (612.78, 'AAPL')] p1 = {key:value for key,value in prices.items() if value > 200} print(p1) #{'AAPL': 612.78, 'IBM': 205.55}

 

tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
p2 = {key:value for key,value in prices.items() if key in tech_names} #方法一
print(p2) #{'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.2}
p4 = {key:prices[key] for key in prices.keys() & tech_names} #方法二
print(p4) #{'HPQ': 37.2, 'IBM': 205.55, 'AAPL': 612.78}

2. 通过创建一个元组序列然后把它传给dict()函数也可以做到

p3 = dict((key,value) for key,value in prices.items() if value > 200)
print(p3) #'AAPL': 612.78, 'IBM': 205.55}

注意:字典推导比创建元组更快

 

posted @ 2022-07-01 14:45  花桥  阅读(47)  评论(0)    收藏  举报