python:当dict的值是列表时,如何检查dict的任何元素中是否存在值



我有一个字典,它的值是一个列表,例如A = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]},我想检查字典的值中是否存在值2。由于A.values()将返回一个列表,每个元素都是列表,因此执行2 in A.values()将始终返回false。有没有办法在不遍历每个值的情况下解决这个问题?

您将不得不以某种方式循环,无论是您自己还是使用内置功能。这里有一个在值上的显式循环;隐藏的";使用CCD_ 5循环。

any(2 in v for v in A.values())

请注意,这只会在必要时进行,一旦找到值就停止搜索。并且只占用O(1(空间。

一个简单的方法是使值列表变平:

A = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
print(2 in [item for sublist in list(A.values()) for item in sublist])
True

你可以试试这个。

A = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
for key in A:
if 2 in A.get(key):
print(True)

您可以通过按键进行循环,并通过.get()功能检查其值

相关内容

最新更新