【问题标题】:Python check if string contains dictionary keyPython检查字符串是否包含字典键
【发布时间】:2015-11-12 19:42:23
【问题描述】:

我有这些字符串:

>>> a="foo"
>>> b="foo_KEY"

还有一个像这样的字典:

>>> DICT
{
'KEY': ['...'],
'KEY2': ['...', '...'],
...
}

我想构建一个函数来检查测试值是否在输入字典的任何键中:

>>> has_key(a, DICT)
False
>>> has_key(b, DICT)
True

在 Python 3 中完成这项任务最优雅的方式是什么?

【问题讨论】:

  • 你是想看看测试值是否在字典中的任何键中?
  • @muddyfish 没错。我编辑我的问题以使其更清楚
  • 你问我想构建一个函数来检查测试值是否在输入字典的任何键中,这不是你的输出显示的内容

标签: python string python-3.x dictionary find


【解决方案1】:
has_key = lambda a, d: any(k in a for k in d)

【讨论】:

  • @AndyKubiak any()all() 是非常强大的内置函数,你会爱上它们的。 ;)
  • 为什么这是一个 lambda?
  • 无需使用 .keys 即可遍历 dicts 键
  • 无需显式调用d.keys();遍历 dict 意味着遍历它的键。
  • 在 py3 中这没什么大不了的,但是将您的代码从 O(1) 查找更改为 python2 中的 O(n) 查找
猜你喜欢
  • 1970-01-01
  • 2013-03-04
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
相关资源
最近更新 更多