我有一个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
这是一种实现方法:
if not any(d['main_color'] == 'red' for d in a):
# does not exist
括号中的部分是一个生成器表达式,该表达式True
将为每个具有要查找的键值对的字典返回,否则为False
。
如果密钥也可能丢失,则上面的代码可以给您一个KeyError
。您可以通过使用get
并提供默认值来解决此问题。如果不提供 默认
值,None
则返回。
if not any(d.get('main_color', default_value) == 'red' for d in a):
# does not exist
问题内容: 我想知道是否有一种方法可以检查Redis列表中是否已存在密钥? 我不能使用集合,因为我不想强制唯一性,但是我确实希望能够检查字符串是否确实存在。 问题答案: 您的选择如下: 如果发现并使用并替换它。 与您的个人保持独立 循环浏览直到找到项目或到达末尾。 Redis列表是作为http://en.wikipedia.org/wiki/Linked_list实现的,因此存在局限性。 我认为您
我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultSetObject进行我想要的验证吗?
问题内容: 我想在更新密钥值之前测试字典中是否存在密钥。我写了以下代码: 我认为这不是完成此任务的最佳方法。有没有更好的方法来测试字典中的键? 问题答案: 是测试密钥是否存在的预期方法。 如果你想使用默认值,可以随时使用dict.get(): 如果你想始终确保任何键的默认值,则可以重复使用,也可以从模块中使用它,如下所示: 但总的来说,关键字是最好的方法。
问题内容: 给定字典,我如何找出该字典中的给定键是否已设置为非值? 即,我想这样做: 即,如果要在其中增加一个值,我想增加该值,否则将其设置为1。 问题答案: 您正在寻找(适用于Python 2.5+)。这个 会做你想要的。 对于常规Python来说,如果给定键没有值,则访问dict时 不会 获得结果-将引发a。因此,如果您想使用Regular而不是代码,则可以使用
问题内容: 如何查看索引是否包含某些数字? 问题答案: 您将为此进行字符串比较 询问数字是否“在”另一个数字中并没有真正的意义(除非您对“在”具有特定的定义)
问题内容: 如何检查字典中是否存在键?我的字典是类型的。 我不能简单地检查一下,因为这可能是由值所导致的。 有任何想法吗? 问题答案: 实际上,您的测试 可 用于检查字典中是否存在键。如果该值设置为,则不会产生: 要区分“字典中不存在键”和“键的值为零”,您可以执行嵌套的可选分配: