当我将此代码应用于字典时,循环仅适用于字典中的最后一个名称列表,循环将不适用于第一组或第二组名称...
def function(dictionary, name):
for i in dictionary:
if name == dictionary[i][0]:
result = "the first name is "+str(dictionary[i][0])+" the second name is "+dictionary[i][1]
else:
result = "False"
print(result)
input("name")
function(dict, name)
我认为第3行存在问题,但我无法弄明白。 字典看起来像这样:
dict = {1: ['john','george'], 2: ['tim','eric'], 3: ['josh','logan']}
答案 0 :(得分:0)
您应该使用它来迭代(循环)字典:
for keys, vals in your_dct.items():
if name == vals[0]
#your code here
答案 1 :(得分:0)
这将通过循环每次打印结果的值。在您的代码中,您只是在上一次循环中打印结果的值。因此,代码只适用于字典的最后一个元素。
def function(dictionary, name):
for i in dictionary:
if name == dictionary[i][0]:
result = "the first name is "+str(dictionary[i][0])+" the second name is "+dictionary[i][1]
print(result)
else:
result = "False"
print(result)
答案 2 :(得分:0)
您的代码包含一些错误,我在这里修复它们是您的工作代码:
dict1 = {1: ['john','george'], 2: ['tim','eric'], 3: ['josh','logan']}
def function(dictionary1, name):
for key1,value1 in dictionary1.items():
if name in value1:
result = "the first name is "+value1[0]+" the second name is "+value1[1]
return result
return False
print(function(dict1, input("name")))
首先,因为您在dict中的值是列表所以请使用in
运算符检查值中是否有名字,而不是==
其次,使用for key,value in dict.items():
而不是索引
你在同一个流程中使用else return
的第三件事就是如果你搜索“josh”#39;它将首先返回两个假,然后返回' logan'所以在代码中使用for循环外部的返回。