a = {1897:("Diptojit", "Sealdah", 9000000001),
2224:("Debanjan", "Tarakeshwar", 9000000002),
1758: ("Avinesh", "Metropolitan", 9000000003),
2283: ("Biswajit", "Garia", 9000000004)}
n = input("Enter name to know index : ")
lk = list(a.keys())
lv = list(a.values())
#print(lv[0])
for i in range(0,4):
if n == "('Biswajit', 'Garia', 9000000004)":
print(lk[lv.index(n)])
break
我试图搜索一个值,并将其键作为输出。这个程序不显示输出,而对于一个简单的字典,当所有键只有一个值时,这个代码工作得很好。 请帮忙
您可以迭代字典中的每个键值对,如果该值与正在查找的值匹配,则返回该键。方法
dict.items()
返回一个键值对数组,我们可以迭代该数组以找到所需的值例如:
编辑:
dict.items()
返回一个键值对数组,然后在for循环中将其分解为key
和value
。然后,对于每个迭代,我们将它与我们正在搜索的值进行比较,如果它是正确的值,我们将返回键。如果找不到,则返回None
要了解有关python解构的更多信息:https://blog.teclado.com/destructuring-in-python/
使用
ast.literal_eval()
或eval()
(前者是首选[read why],尽管后者是标准库的一部分)将输入转换为元组并匹配对象。请查看以下代码:我修改了您的代码逻辑,使其适用于广义输入
输入示例:
Enter name to know index : ("Avinesh", "Metropolitan", 9000000003)
示例输出:
1758
您可以执行以下操作:
ast.literal_eval
安全地计算元组,因为它是元组的字符串表示形式。然后压缩包含键和值的列表,然后检查是否等于j
相关问题 更多 >
编程相关推荐