Igl*_*gle 2 python validation dictionary
我想检查另一个字典中是否有至少一个来自给定字典的密钥.我已经知道如何检查"必须"这样的键:
valid_data = []
needed_keys = (key1, key2)
for d in data:
if not all(key in d for key in needed_keys):
continue # ignore invalid object
valid_data.append(d)
Run Code Online (Sandbox Code Playgroud)
数据在这里是一个dicts列表.使用此代码,只有包含key1和key2的项目才会附加到valid_data.
是否有类似的东西:
if not any(key in d for key in needed_keys)
Run Code Online (Sandbox Code Playgroud)
如果所需的密钥中有任何密钥可用,它也会成功吗?
使用集合交集:
needed_keys = {key1, key2}
for d in data:
if needed_keys.intersection(d):
valid_data.append(d)
Run Code Online (Sandbox Code Playgroud)
如果在needed_keys
集合和字典之间没有共享密钥,则交集仅为空.
请注意,您的any(...)
功能也可以工作,只是没有设置交叉选项那么有效; 也许你没有意识到这个any()
功能确实存在?