繁体   English   中英

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

[英]Python3, how to check whether some dictionary value in 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')

我怎样才能做到这一点?

只要使用any ,Python的内置函数,以检查是否为,那么,一个条件成立any出许多。 一旦遇到第一个true元素, any尽早中断并避免虚假的迭代:

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', '')

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM