我有一个列表和字典。我要检查字典中是否存在列表元素,然后将其添加到新字典中
list1 = [name, number, ...]
mydict = {
'house no': 12232,
'stre11': 123,
'name': ali,
'area': new,
'number': 032544,
...
}
newdict = {}
输出:
newdict = {'name': ali, 'number': 032544}
答案 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