在字典中搜索列表的值并将其添加到新字典中

时间:2020-07-18 18:43:40

标签: python

我有一个列表和字典。我要检查字典中是否存在列表元素,然后将其添加到新字典中

list1 = [name, number, ...]
mydict = {
    'house no': 12232,
    'stre11': 123,
    'name': ali,
    'area': new,
    'number': 032544,
    ...
}
newdict = {}

输出:

newdict = {'name': ali, 'number': 032544}

3 个答案:

答案 0 :(得分:3)

这是使用dictionary comprehension的绝佳机会。对于list1中的每个键,在mydict中查找值:

list1 = ['name','number']

mydict = {'house no': 12232, 'stre11': 123, 'name': 'ali', 'area': 'new', 'number': '032544'}

newdict = {k:mydict[k] for k in list1 }
# {'name': 'ali', 'number': '032544'}

请注意,如果密钥不在mydict中,则会引发异常。如果有可能,您可以添加一个条件:

{k:mydict[k] for k in list1 if k in mydict }

答案 1 :(得分:1)

一种非常简单易懂的方法:

list1 = ['name', 'number']
mydict={'house no':12232,'stre11':123,'name':'ali','area':'new','number':32544}
newdict = {}

for entry in list1:
  if entry in mydict:
     newdict[entry] = mydict[entry]

答案 2 :(得分:0)

我们将在items()中使用mydict函数进行迭代。如果其中任何键的值等于desired_keyword中的任何值,则new_dict将使用该值创建一个新键。

mydict={'house no':12232,'stre11':123,'name':1,'area':2,'number': 1}
desired_keyword = [1, 4]
new_dic = {}
for i, j in mydict.items():
    for d in desire_keyword:
        if d == j:
            new_dic[i] = j
相关问题