国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

1.17 從字典中提取子集

2018-02-24 15:26 更新

問題

你想構(gòu)造一個字典,它是另外一個字典的子集。

解決方案

最簡單的方式是使用字典推導(dǎo)。比如:

prices = {
    'ACME': 45.23,
    'AAPL': 612.78,
    'IBM': 205.55,
    'HPQ': 37.20,
    'FB': 10.75
}
# Make a dictionary of all prices over 200
p1 = {key: value for key, value in prices.items() if value > 200}
# Make a dictionary of tech stocks
tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
p2 = {key: value for key, value in prices.items() if key in tech_names}

討論

大多數(shù)情況下字典推導(dǎo)能做到的,通過創(chuàng)建一個元組序列然后把它傳給 dict() 函數(shù)也能實現(xiàn)。比如:

p1 = dict((key, value) for key, value in prices.items() if value > 200)

但是,字典推導(dǎo)方式表意更清晰,并且實際上也會運行的更快些(在這個例子中,實際測試幾乎比 dcit() 函數(shù)方式快整整一倍)。

有時候完成同一件事會有多種方式。比如,第二個例子程序也可以像這樣重寫:

# Make a dictionary of tech stocks
tech_names = { 'AAPL', 'IBM', 'HPQ', 'MSFT' }
p2 = { key:prices[key] for key in prices.keys() & tech_names }

但是,運行時間測試結(jié)果顯示這種方案大概比第一種方案慢1.6倍。如果對程序運行性能要求比較高的話,需要花點時間去做計時測試。關(guān)于更多計時和性能測試,可以參考14.13小節(jié)

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號