Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 搜索字典中的列表元素,如果没有';不存在_Python_List_Dictionary - Fatal编程技术网

Python 搜索字典中的列表元素,如果没有';不存在

Python 搜索字典中的列表元素,如果没有';不存在,python,list,dictionary,Python,List,Dictionary,我有一个充满变量名的列表和一个包含名称及其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 !=

我有一个充满变量名的列表和一个包含名称及其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:“名称1”


而且它不能删除我想要的元素。

使用
命令

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'}
输出:

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'}

使用
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'}
输出:

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'}
您可以在此处使用
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'}
您可以在此处使用
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'}

因此,删除列表中除此之外的所有内容。对吗?这回答了你的问题吗?因此,删除列表中除此之外的所有内容。对吗?这回答了你的问题吗?如果
name
太大,则首先转换为
set
。如果
name
太大,则首先转换为
set