簡體   English   中英

在Python中通過鍵有效選擇字典項

[英]Selecting dictionary items by key efficiently in Python

假設我有一本字典,其鍵是字符串。 如何從僅包含某個列表中存在的鍵的字典有效地制作一個新字典?

例如:

# a dictionary mapping strings to stuff
mydict = {'quux': ...,
          'bar': ...,
          'foo': ...}

# list of keys to be selected from mydict
keys_to_select = ['foo', 'bar', ...]

我想出的方法是:

filtered_mydict = [mydict[k] for k in mydict.keys() \ 
                   if k in keys_to_select]

但是我認為這是非常低效的,因為:(1)它要求使用keys()枚舉鍵,(2)它每次都需要在keys_to_select中查找k。 我認為,至少可以避免其中之一。 有任何想法嗎? 如果需要,我也可以使用scipy / numpy。

dict((k, mydict[k]) for k in keys_to_select)

如果您知道所有要選擇的鍵也是mydict鍵; 如果不是這樣,

dict((k, mydict[k]) for k in keys_to_select if k in mydict)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM