【问题标题】:Get Dictionary Value If User Inputs Equals Key如果用户输入等于键,则获取字典值
【发布时间】:2020-11-23 22:32:24
【问题描述】:

我正在尝试通过循环浏览我的大约 80k 个项目的字典来完成上述操作。现在,如果我将else: print(does not exist.) 排除在代码之外,它就会指向正确的值。如果我在那里有else,它只会无休止地打印else 代码。这是有问题的功能:

def query_disease_to_code() :
    """ Interactive function to query code from disease name. """
    d = disease_to_code_dictionary() # disease to code dictionary

    query = input("Give disease name (q to quit): ")
    while query != "q" :
        query = query.lower() # lowercase
        for key, value in d.items():
            if key == query:
                print(value)
            else:
                print("Disease name does not exist.")
        query = input("Give disease name (q to quit): ")
        

query_disease_to_code()

【问题讨论】:

  • 只需使用v = d.get(key, None) 然后测试if v is not None:...等...

标签: python loops dictionary


【解决方案1】:

这样做:

def query_disease_to_code():
    """ Interactive function to query code from disease name. """
    d = disease_to_code_dictionary()  # disease to code dictionary

    query = input("Give disease name (q to quit): ")
    while query != "q":
        if query in d:
            print(d[query])
        else:
            print("Disease name does not exist.")
        query = input("Give disease name (q to quit): ")

您看到无穷无尽的"Disease name does not exist." 的原因是您正在迭代所有键,并且每次if key == query: evals 到False 它都会落入 else 分支。

您也可以使用get,如下所示:

query = input("Give disease name (q to quit): ")
while query != "q":
    print(d.get(query, "Disease name does not exist."))
    query = input("Give disease name (q to quit): ")

【讨论】:

猜你喜欢
  • 2018-02-03
  • 2022-07-12
  • 2019-11-10
  • 2013-07-01
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多