搜索字典中的列表元素,如果它们不存在,则将其删除

2024-09-29 19:19:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个充满变量名的列表和一个包含名称及其ID的字典

例如:

name=['name1','name2'....'name20']

dicti={'1':'name1', '2':'name2','hello':'world",'animal':'dog',...'20':'name20'}

我想用列表中的元素搜索字典。如果字典中存在列表元素,则不要删除它

我有这个密码

for i in dicti.values() :
    for j in name :
        if j != i :
            del dicti[i]
        else :
            continue

运行代码时,出现以下错误:

KeyError: 'name1'

它不能删除我想要的元素


Tags: namein名称id元素hello列表for
2条回答

您可以在这里使用filter()

name=['name1','name2'....'name20']
dicti={'1':'name1', '2':'name2','hello':'world",'animal':'dog',...'20':'name20'}
new_dict=dict(filter(lambda x: x[1] in name,dicti.items()))
print(new_dict)

输出

{'1': 'name1', '2': 'name2',... 20: 'name20'}

使用dict理解

Ex:

name=set(['name1','name2','name20'])
dicti={'1':'name1', '2':'name2','hello':'world','animal':'dog',20:'name20'}
print({k:v for k, v in dicti.items() if v in name})

输出:

{20: 'name20', '1': 'name1', '2': 'name2'}

相关问题 更多 >

    热门问题