Python3,如何检查列表中是否有一些字典值?

时间:2018-10-29 07:54:34

标签: python list

list = [
    {'a': 'a_first', 'b': 'b_first'},
    {'a': 'a_sec', 'b': 'b_sec'},
    {'a': 'a_third', 'b': 'b_third'}
]

我想知道值'b_sec'在列表的键'b'中。

示例:

if 'b_sec' is in list's value of 'b':
    print('found')

我该怎么做?

2 个答案:

答案 0 :(得分:5)

只需使用Python的内置函数any来检查条件是否满足any中的所有条件。 any会尽早中断,并在遇到第一个true元素时避免虚假迭代:

if any(d.get('b') == 'b_sec' for d in lst):  # do not use 'list' as a name
    # do stuff

使用d.get('b')而不是d['b']更健壮,因为如果'b'不在其中之一中,则不会引发错误。请注意,如果有可能,您寻找的值是None,则必须为get提供不同的默认值,例如d.get('b', '')

答案 1 :(得分:2)

>>> 'b_sec' in [d['b'] for d in list]
True
>>> 'b_fourth' in [d['b'] for d in list]
False