【问题标题】:dictionaries - check if value has key [closed]字典 - 检查值是否有键 [关闭]
【发布时间】:2016-04-01 11:01:53
【问题描述】:

这个想法是验证 dict 的值是否具有某个键。如何做到这一点?我尝试了 has_key() 选项,但它不起作用并且在 Python3 中已弃用

>>> a = {'q':1, 'w':2, 'e':3}
>>> for keys in a.keys():
...     print keys
... 
q
e
w
>>> for values in a.values():
...     print values
... 
1
3
2
>>> for values in a.values():
...     if values.has_key('q'):
...         print values
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: 'int' object has no attribute 'has_key'

我只需要打印那些具有特定键的值。

【问题讨论】:

  • 我没有得到你想要做的:values 变量(你宁愿称之为value顺便说一句)是整数,所以这个错误很明显......在你想要的要检查a 是否有密钥'q',只需使用'q' in a
  • @martineau 我不明白你是如何断定这是 python3 的。看看非函数打印用法,这可能不是python3。
  • @martineau 我明白了,但是再次查看打印用法,我认为您应该在添加该标签之前要求澄清。
  • @Lafexlos:我也将问题标记为不清楚。当每个人都试图猜测 OP 真正问的是什么时,这种混乱是有这么多答案的部分原因。

标签: python loops python-3.x dictionary


【解决方案1】:

像这样?

a = {'q':1, 'w':2, 'e':3}
target = 'q'

for k,v in a.items():
    if k == target:
        print(v)

【讨论】:

  • 是的,这就是我需要的。谢谢!
  • 这是一种访问字典的低效方式。您只需要if target in a: print a[target]
  • 如果您有多个目标,只需列出它们targets = ['q','z',...],然后更改代码if k in targets:
  • @PM2Ring,我只是简化了这个问题,因为我需要这个用于 Django 中的模板。没有办法在 Django 模板中使用 [target]。谢谢
  • @JohnyJho:问题应该尽可能简化,但不要进一步。 :) 如果您将问题简化到答案不适用于您的真实代码的程度,那么您需要解决问题。
【解决方案2】:

你可以使用'in'

for values in a:
    if values in a:
        print(values)

【讨论】:

  • 对于a中的值,如果a中的值........ O_O??
  • 这将简单地打印字典a的所有
猜你喜欢
  • 2013-01-04
  • 2014-09-14
  • 2020-06-10
  • 2015-08-23
  • 2022-07-21
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多