如何检查数组中是否存在所有指定的键?

时间:2015-01-13 11:21:27

标签: python

例如我有这样的事情:

{'key1': 'value', 'key2': 'value', 'key3': 'value','key4': 'value','key4': 'value'}

有一个数组:

['key1', 'key3']

如何检查第二个阵列中的所有键是否都存在?

4 个答案:

答案 0 :(得分:7)

您可以使用allgenerator expression。这将迭代您的数组并检查每个键是否在d的键中。如果至少缺少其中一个键,那么它将返回False。

d = {'key1': 'value', 'key2': 'value', 'key3': 'value','key4': 'value','key4': 'value'}
a = ['key1', 'key3']

all(key in d for key in a) # True

a2 = ['key1', 'key5']

all(key in d for key in a2) # False

答案 1 :(得分:3)

您可以使用set.issubset()方法检查

a = {'key1': 'value', 'key2': 'value', 'key3': 'value','key4': 'value','key4': 'value'}
b = ['key1', 'key3']

set(b).issubset(a)
#True

c = ['key1', 'key5']
set(c).issubset(a)
#False

修改:根据@Maroun Maroun评论直接在issubset上应用a

答案 2 :(得分:1)

另一种方式(使用setissubset):

set(['key1', 'key3']).issubset(your_dict)

答案 3 :(得分:0)

在dict对象中使用循环和运算符:

adict = {'key1': 'value', 'key2': 'value', 'key3': 'value','key4': 'value','key4': 'value'}

keys_list = ['key1', 'key3']
for key in keys_list:
  if key in adict:
    print key

“in”可以检查dict中的键是否