Python實作從字典中提取子集的方法(程式碼)

不言
發布: 2018-10-23 16:11:49
轉載
2048 人瀏覽過
本篇文章帶給大家的內容是關於Python實作從字典中提取子集的方法(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1、需求

我們想要建立一個字典,本身就是另一個字典的子集。

2、解

利用字典推導式可輕鬆解決。

prices={
'a':1.1,
'b':2.2,
'c':3.3,
'd':4.4,
'e':5.5
}
p1={key:value for key ,value in prices.items() if value>3}
print(p1)

names={'a','b'}
p2={key:value for key,value in prices.items() if key in names}
print(p2)
登入後複製

結果:

{'c': 3.3, 'd': 4.4, 'e': 5.5}
{'a': 1.1, 'b': 2.2}
登入後複製

3、分析

大部分可以用字典推導式解決的問題也可以透過建立元組序列然後將它們傳給dict()函數來完成,例如:

#结果为:{'c': 3.3, 'd': 4.4, 'e': 5.5}
p3=dict((key,value) for key,value in prices.items() if value>3)
登入後複製

但在字典推導式的方案更清晰,而且實際運作起來也快很多。 (第一種效率會快將近2倍)

有時候會有多種方法來完成同一時間。例如,第二個例子還可以重寫成:

#结果为:{'b': 2.2, 'a': 1.1}
p4={key:prices[key] for key in prices.keys() & names}
登入後複製

但是,測試顯示這個解決方案幾乎比第一種慢1.6倍。因此,當出現多種方案解決相同問題時,可以稍微測試一下來研究所花費的時間。

#

以上是Python實作從字典中提取子集的方法(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板