【发布时间】:2020-04-03 19:03:58
【问题描述】:
我有数组字典,如下所示:
y_dict= {1: np.array([5, 124, 169, 111, 122, 184]),
2: np.array([1, 2, 3, 4, 5, 6, 111, 184]),
3: np.array([169, 5, 111, 152]),
4: np.array([0, 567, 5, 78, 90, 111]),
5: np.array([]),
6: np.array([])}
我需要在我的字典中找到拦截数组:y_dict。
作为第一步,我从空数组中清除了字典,就像
dic = {i:j for i,j in y_dict.items() if np.array(j).size != 0}
所以,dic 有以下观点:
dic = { 1: np.array([5, 124, 169, 111, 122, 184]),
2: np.array([1, 2, 3, 4, 5, 6, 111, 184]),
3: np.array([169, 5, 111, 152]),
4: np.array([0, 567, 5, 78, 90, 111])}
为了找到拦截,我尝试使用元组方法:
result_dic = list(set.intersection(*({tuple(p) for p in v} for v in dic.values())))
实际结果为空列表:[];
预期结果应该是:[5, 111]
你能帮我在字典中找到数组的交集吗?谢谢
【问题讨论】:
标签: python numpy dictionary set interception