【问题标题】:check if user input is equal to the value of a specific dictionary key检查用户输入是否等于特定字典键的值
【发布时间】:2018-02-03 00:04:34
【问题描述】:

我有一本字典,其中国家作为键,大写作为值,我想知道是否有办法检查作为输入输入的单词是否与特定键的值匹配?

例如,在{"England" : "London"} 的情况下,当我输入“London”时,是否可以检查此输入是否为“England”的值?如果为真,它将打印“正确答案”。 谢谢。

【问题讨论】:

  • 如果您遍历字典中的每个键并将其值映射到您要查找的单词,这是可能的。

标签: python dictionary


【解决方案1】:

这是这本字典的唯一应用吗,您应该考虑使用一个将首都映射到国家/地区的字典。 (作为一般经验法则,密钥应该是您在访问字典时“知道”的任何内容)

要检查一个值是否在字典中,我们可以使用if v in d.values()

如果您想要所有以 value 为值的键,我们可以这样做

l = [k for k, v in d.items() if v == value]

那么l 将是所有具有您正在查找的值的键的list

【讨论】:

    【解决方案2】:

    您可以尝试反转您的字典:

    d = {'England': 'London', 'Spain': 'Madrid', 'France': 'Paris'}
    
    rev_d = {city: country for country, city in d.items()}
    
    def lookup(d, city, country):
        return True if d[city] == country else False
    
    print(lookup(rev_d, 'London', 'England'))
    # True
    

    【讨论】:

      【解决方案3】:

      你可以得到你想要的嵌套 for 循环,像这样:

      for k in dict:
              for v in dict[k]:
                  if searchFor in v:
                      return k
      

      【讨论】:

        猜你喜欢
        • 2020-04-01
        • 2021-12-11
        • 1970-01-01
        • 2022-10-15
        • 2022-01-16
        • 1970-01-01
        • 2022-06-14
        • 2017-06-27
        • 1970-01-01
        相关资源
        最近更新 更多