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中文網其他相關文章!