【问题标题】:python dictionary checking with keypython字典检查键
【发布时间】:2019-04-19 22:31:41
【问题描述】:

我想检查我的key是否等于输入:

topics = c.classify("what about ")
a = topics.keys() 
if a == "resources": 
    print("yes")

但a 存储为 dict_keys(['resource"]) 我希望a 只是“资源”。 请问有人可以帮我吗?

【问题讨论】:

  • 你确定这个字典只有一个键吗?也许只是if "resources" in topics。
  • 您似乎在询问如何访问序列的元素。这是一个简单的下标:a = topics.keys()[0]
  • @Prune 但在这种情况下它不是一个序列。
  • 您的长期问题是什么?这似乎是一种不雅的方式来做最有用的事情。
  • @juanpa.arrivillaga:它似乎是一个单一字符串的列表,不是吗?

标签: python dictionary


【解决方案1】:

您应该首先将键转换为常规的python列表,然后在其中进行迭代(您可能无需转换就可以做到,但我认为它更容易找到)。

topics = c.classify("what about ")
a = list(topics.keys())
for key in a:
    if key == "resources": 
        print("yes")

不要忘记一个 dict 可以有多个值。 正如@rob-bricheno 所说,您可以使用in 运算符更简单地完成它。该运算符将循环遍历list,如果您指定的元素在其中,则返回True,否则将返回False 值。所以你可以用这个简化的代码来做:

topics = c.classify("what about ")
a = list(topics.keys())
if "resources" in a:
    print("yes")

当resources 在a 列表中时,如果条件为True,则print 将调用。当不在a中时,print会跳过。

【讨论】:

  • 欢迎您。如果有帮助,您可以将其标记为正确答案。因此,与您有相同问题的其他人在查看 stackoverflow 上的此问题时可以找到这是他们的解决方案。如果你在stackoverflow的所有问题中都这样做会很好。
  • 是的。但我认为对于一个刚接触python的人来说这很复杂。
【解决方案2】:

您可以使用in。当您将它与字典一起使用时,它会检查您指定的值是否是字典中的键。

topics = c.classify("what about ")
if "resources" in topics:
    print("yes")

这是最快、最标准的方法。阅读此处了解更多信息Python dictionary keys. "In" complexity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-13
    • 2020-05-14
    • 2017-06-23
    • 2016-11-14
    • 2015-11-12
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    相关资源
    最近更新 更多