使用字典中的值检索键

时间:2019-11-02 17:12:22

标签: python dictionary

基本上,我试图通过搜索值来从字典中获取值的键。

people = {
    "Sarah" : "36",
    "David" : "42",
    "Ricky" : "13"
    }


user_input = ('Enter the age of the individual") #The user enters the 
                                                 #value 
key_to_output = (...) #The variable that would contain the key value
print(key_to_output)

例如,在上面的词典中,如果用户输入“ 36”,则返回“ Sarah”后将返回他们。我正在使用的字典永远不会有重叠的值,所以不用担心会引起任何问题。

此外,由于我的python知识不是很高级,因此如果将响应保持相当业余的状态,将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以这样反转字典-

people_inv = {v:k for k,v in people.items()}

现在说您的用户输入了36,

user_input = "36"
people_inv[user_input] # this will give Sarah

如果值不是像下面的示例中那样唯一,则可以执行此操作-

people = {"Sarah":36, "Ricky":36, "Pankaj":28} 
people_inv= {}
for k,v in people.items():
    people_inv.setdefault(v, []).append(k)
people_inv["36"]

输出

['Sarah', 'Ricky']

答案 1 :(得分:1)

最简单的方法是对像这样的值进行提示。

    def find_key(value, people):
        for name in people:
            if people[name] == value:
                return name

如果您尝试获取多重键,我会尝试:

   def find_key(value, people):
       names = []
       for name in people:
           if people[name] == value:
               names.append(name)
       return names