[英]Filtering dictionary items based on another list
我有一本以元組為鍵的字典(my_dict),也有一個我感興趣的值列表(my_list)。
我想創建一個新字典,在其中只保留元組和值的情況下,以用於元組的第一個元素包含在我的值列表中的情況。 有快速的方法嗎?
例如:
my_dict = {('1', '2'): 'a', ('1', '3'): 'b', ('2', '3'): 'c', ('3', '4'): 'd', ('4', '5'): 'a', ('4', '6'): 'b', ('5', '6'): 'e', ('6', '7'): 'f'}
my_list = ['1', '2', '6']
輸出應為:
my_new_dict = {('1', '2'): 'a', ('1', '3'): 'b', ('2', '3'): 'c', ('6', '7'): 'f'}
基本方法:帶有過濾器的dict
comp:
In [807]: {k : v for k, v in my_dict.items() if k[0] in my_list}
Out[807]: {('1', '2'): 'a', ('1', '3'): 'b', ('2', '3'): 'c', ('6', '7'): 'f'}
如果您使用的是python2,則需要my_dict.iteritems()
。
為了提高效率,請將my_list
轉換為set
:
my_set = set(my_list)
res = {k : v for k, v in my_dict.items() if k[0] in my_set}
print(res)
過濾時查找變得更加高效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.