如何检查一个数组的键值是否存在于另一个数组中?

3
我可以做到这一点:
filter(lambda x: x.key1 in ["aa", "bb", "cc"], [{key1: ..., key2: ...}, {key1: ...}])

我该如何做相反的事情?
dict_items = [{key1: ..., key2: ...}, {key1: ...}]
filter(lambda x: x in ???dict_items.key1???, ["aa", "bb", "cc"])

1
你不能使用点符号访问字典项。x.key1会给你一个属性错误。你能否在问题中添加一个示例输入和期望的输出?或者展示你代码的输出。 - Mazdak
2个回答

0
假设您有两个字典 d1 = {key1: val1, key2: val2}d2 = {key3: val3, key4: val4}
如果您想比较键,但不清楚您要比较什么,请输入以下内容:
set.intersection(set(d1.keys()), set(d2.keys()))

对于值:

set.intersection(set(d1.values()), set(d2.values()))

0

你可以使用列表推导式,如下所示:

a = {"aa":1, "ll":4}
b = {"bb": 'pl', "xx":12, "qq": 66}
print [key for j in [a, b] for key, val in j.iteritems() if key in ["aa", "bb", "cc"]]

或者如果你只需要键,可以使用:

print [key for j in [a, b] for key in j.keys() if key in ["aa", "bb", "cc"]]

输出:

['aa', 'bb']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接