Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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_Indentation - Fatal编程技术网

Python 对列表和字典进行迭代时出错

Python 对列表和字典进行迭代时出错,python,indentation,Python,Indentation,输出: import os import sys lst = ["ABCD", "LMN" , "STU" , "PQRS" ] dict = { 'ABCD':'kajal' , 'LMN' :'John' , 'PQRS' : 'Anni'} for i in lst: for k,l in dict.items(): if i == k: print(i,l) else: print(i,"no

输出:

import os
import sys

lst = ["ABCD", "LMN" , "STU" , "PQRS" ]

dict = { 'ABCD':'kajal' , 'LMN' :'John' , 'PQRS' : 'Anni'}

for i in lst:
    for k,l in dict.items():
        if i == k:
            print(i,l)
        else:
            print(i,"no id")
预期产出:

('ABCD', 'kajal')
('ABCD', 'no id')
('ABCD', 'no id')
('LMN', 'no id')
('LMN', 'no id')
('LMN', 'John')
('STU', 'no id')
('STU', 'no id')
('STU', 'no id')
('PQRS', 'no id')
('PQRS', 'Anni')
('PQRS', 'no id')

你不工作的原因是因为你要检查每个项目三次,而你只需要检查一次

对于列表中的每一项,都要对照字典中的每一个键/值对进行检查;因为有三个键,所以列表中的每个项都有三个输出

尝试一些简单的方法:

('ABCD', 'kajal')
('LMN', 'John')
('STU', 'no id')
('PQRS', 'Anni')

首先,避免使用变量名,如
dict
——它会用相同的名称屏蔽标准函数。在列表中迭代一次,然后在字典中迭代。以下是另一种方法:

for i in lst:
   print(tuple(i, dict.get(i, 'no id')))
使用中的
关键字测试是否存在密钥

顺便说一句,输出中出现的
()
表明您正在使用Python2中的
print
语句使用Python3语法

lst = ["ABCD", "LMN" , "STU" , "PQRS" ]

mydict = { 'ABCD':'kajal' , 'LMN' :'John' , 'PQRS' : 'Anni'}

for i in lst:
    if i in mydict:
        print(i,mydict[i])
    else:
        print(i,"no id")

简单地说,您也迭代了dict,因此多个实体

非常感谢您的解决方案:)@Kajal如果解决方案对您的问题有效,您可以投票并接受作为答案。
import os
import sys

lst = ["ABCD", "LMN" , "STU" , "PQRS" ]

dict = { 'ABCD':'kajal' , 'LMN' :'John' , 'PQRS' : 'Anni'}

for i in lst:
    if i in dict:
        print(i, dict[i])
    else:
        print(i, "no id")
def list_from_dict(id, dictionary):
    if id in dictionary.keys():
        return id, dictionary[id]
    else:
        return id,"no id"

lst = ["ABCD", "LMN" , "STU" , "PQRS" ]
dic = { 'ABCD':'kajal' , 'LMN' :'John' , 'PQRS' : 'Anni'}

for items in lst:
    print(list_from_dict(items,dic))