使用python检查值是否已经存在于字典列表中

  • Post category:Python

使用Python检查值是否已经存在于字典列表中的方法有很多种。下面介绍其中两种常见的方法。

方法一:使用列表解析式

使用列表解析式可以很方便地检查某个键/值是否已经存在于字典列表中。例如,我们有如下一个字典列表:

my_list = [
    {"name": "Alice", "age": 18},
    {"name": "Bob", "age": 20},
    {"name": "Charlie", "age": 22}
]

如果要检查是否存在一个字典的”name”键值为”Alice”的字典,可以使用下面的代码:

exist = any(d["name"] == "Alice" for d in my_list)

这里使用了Python内置的any函数,它会遍历列表解析式生成的所有元素,如果存在一个元素为True,即表示存在”name”键值为”Alice”的字典,将结果赋值给exist变量。

如果要检查是否存在一个字典的”age”键值为18的字典,可以使用下面的代码:

exist = any(d["age"] == 18 for d in my_list)

方法二:使用in关键字

另一种方法是使用in关键字来检查键/值是否存在于字典列表中。例如,我们有如下一个字典列表:

my_list = [
    {"name": "Alice", "age": 18},
    {"name": "Bob", "age": 20},
    {"name": "Charlie", "age": 22}
]

如果要检查是否存在一个字典的”name”键值为”Alice”的字典,可以使用下面的代码:

exist = any(d["name"] == "Alice" for d in my_list)

这里与上面的代码类似,只是将列表解析式放在了any函数中,并且使用in关键字代替了判断语句。如果要检查是否存在一个字典的”age”键值为18的字典,可以使用下面的代码:

exist = any(18 in d.values() for d in my_list)

这里使用了字典的values方法,它会返回字典中所有的值的视图,我们可以使用in关键字来判断18是否在其中。

总的来说,以上方法都可以方便地检查值是否已经存在于字典列表中,具体使用哪种方法可以根据自己的需要和习惯来选择。