我有一个字典,它的值是一个列表,例如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()
功能检查其值