Python 字典中不同键的交集
Intersection from different keys inside Python dictionary
我不仅要查找交集,还要查找字典中具有 ID 的两组之间的差异。
我的字典结构是:
dict_all[key] = {"id_yes" : None, "id_no" : None ,"ZUW_yes": set(), "ZUW_no": set(), "missing_ZUW_yes" : set(), "missing_ZUW_no" : set()}
字典之前被填满了,除了
"missing_ZUW_yes" : set(), "missing_ZUW_no" : set()
这两个应该从比较 "ZUW_yes": set(), "ZUW_no": set()
中获取丢失的 ID。
这意味着 missing_ZUW_yes 必须包含 ZUW_no
但不在 ZUW_yes
.
中的对象
我试图通过这样做来建立交叉点:
def intersection(dict_all):
overlap = [k for k in dict_all[key]["ZUW_yes"] if in dict_all[key]["ZUW_no"]]
在下文中,我想将单个 yes 和 no 集与交集进行比较,以找出差异并填写缺少的 dict 条目。
我之前用一些 for 循环做过这个,但是花了太长时间,因为 dict 中的数据非常大..
鉴于您的集合是 集合,您只需使用它们提供的正确集合操作即可:ZUW_no - ZUW_yes
将为您提供 ZUW_no
中但不包含的所有内容ZUW_yes
.
如果您更喜欢更通俗易懂的版本,-
是 set_a.difference(b)
的别名。请注意,方法形式也可以采用多个参数,因此 a - b - c - d
(又名 a - (b | c | d)
)也可以写成 a.difference(b, c, d)
.
set
有 a number of very useful set-operations provided out of the box 你可能想看一看,其中大部分都非常清楚(在我看来,唯一有点模棱两可的是 symmetric_difference
,因为它计算 (a-b) | (b-a)
又名 (a|b) - (a&b)
,虽然它的命名可以 也 让它成为 shorthand for a-b, b-a
)
我不仅要查找交集,还要查找字典中具有 ID 的两组之间的差异。 我的字典结构是:
dict_all[key] = {"id_yes" : None, "id_no" : None ,"ZUW_yes": set(), "ZUW_no": set(), "missing_ZUW_yes" : set(), "missing_ZUW_no" : set()}
字典之前被填满了,除了
"missing_ZUW_yes" : set(), "missing_ZUW_no" : set()
这两个应该从比较 "ZUW_yes": set(), "ZUW_no": set()
中获取丢失的 ID。
这意味着 missing_ZUW_yes 必须包含 ZUW_no
但不在 ZUW_yes
.
我试图通过这样做来建立交叉点:
def intersection(dict_all):
overlap = [k for k in dict_all[key]["ZUW_yes"] if in dict_all[key]["ZUW_no"]]
在下文中,我想将单个 yes 和 no 集与交集进行比较,以找出差异并填写缺少的 dict 条目。
我之前用一些 for 循环做过这个,但是花了太长时间,因为 dict 中的数据非常大..
鉴于您的集合是 集合,您只需使用它们提供的正确集合操作即可:ZUW_no - ZUW_yes
将为您提供 ZUW_no
中但不包含的所有内容ZUW_yes
.
如果您更喜欢更通俗易懂的版本,-
是 set_a.difference(b)
的别名。请注意,方法形式也可以采用多个参数,因此 a - b - c - d
(又名 a - (b | c | d)
)也可以写成 a.difference(b, c, d)
.
set
有 a number of very useful set-operations provided out of the box 你可能想看一看,其中大部分都非常清楚(在我看来,唯一有点模棱两可的是 symmetric_difference
,因为它计算 (a-b) | (b-a)
又名 (a|b) - (a&b)
,虽然它的命名可以 也 让它成为 shorthand for a-b, b-a
)