检查列表字典中是否有值的最佳方法?

时间:2017-04-01 17:41:34

标签: python list python-3.x dictionary

所以我有一个像这样的列表字典:

dct = {'1': ['hello','goodbye'], '2': ['not here','definitely not here']}

检查是否'你好'最快的方法是什么?在我的词典中的一个列表中

1 个答案:

答案 0 :(得分:6)

正如Willem Van Onsem评论的那样,实现这一目标的最简单方法是:

any('hello' in val for val in dct.values())
如果给定迭代中的任何值都是真的,

any将返回True。

dct.values()返回一个dict_values迭代,它会产生字典中的所有值。

'hello' in val for val in dct.values()是一个生成器表达式,为True所在的dct的每个值产生'hello'

如果你想知道字符串所在的键,你可以这样做:

keys = [key for key, value in dct.items() if 'hello' in value]

在您的情况下,keys将为['1']。如果你仍然这样做,你可以在布尔上下文中调用use列表,例如if keys: ...