我有一个Python字典列表如下:
a = [
{'main_color': 'red', 'second_color':'blue'},
{'main_color': 'yellow', 'second_color':'green'},
{'main_color': 'yellow', 'second_color':'blue'},
]
我想检查列表中是否已经存在具有特定键/值的字典,如下所示:
// is a dict with 'main_color'='red' in the list already?
// if not: add item
8条答案
按热度按时间klsxnrf11#
这里有一个方法:
括号中的部分是一个生成器表达式,它为每个包含要查找的键值对的字典返回
True
,否则返回False
。如果密钥也可能丢失,上面的代码可以给予你一个
KeyError
。您可以通过使用get
并提供默认值来修复此问题。如果不提供 default 值,则返回None
。col17t5w2#
也许这会有所帮助:
jexiocij3#
基于@Mark Byers的伟大答案,以及以下@Florent问题,只是为了表明它也将在具有2个以上键的dics列表上的2个条件下工作:
结果:
jv4diomz4#
也许沿着这些路线的函数就是你所追求的:
aamkag615#
只是另一种方式来做什么行动要求:
filter
将向下过滤列表,直到OP正在测试的项目。然后if
条件询问问题“如果这个项目不在那里”,然后执行这个块。ilmyapht6#
我认为检查密钥是否存在会更好一些,因为一些评论者在首选答案enter link description here下询问
所以,我会在该行末尾添加一个小if子句:
我不确定,如果错了,但我认为OP要求检查,如果键值对存在,如果不存在,则应添加键值对。
在这种情况下,我建议一个小函数:
输出:
mm5n2pyu7#
我想我能做到。
uoifb46i8#
有两种方法可以检查特定键的值是否存在于字典列表中,如下所示:
此外,下面的代码可以检查字典列表中是否存在值: