首頁 >後端開發 >Python教學 >Python實作從字典中提取子集的方法(程式碼)

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

不言
不言轉載
2018-10-23 16:11:492061瀏覽
本篇文章帶給大家的內容是關於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刪除