索引仅在多维数组中重复。
实施例
a = [[279, 629, 590], [382, 825, 279], [629, 569, 113], [382, 785, 296]]
带有重复项的3D数组,我想返回重复项的行和列。
results = [[[279], [[0, 0], [1, 3]], [[629], [[0, 1], [2, 0]], [[382], [[1, 0], [3, 0]]]
我希望只返回重复的元素以及行和列。
答案 0 :(得分:1)
这个问题的一个可能的解决方案是获得dict
(我使用了defaultdict
因为如果不需要手动启动空列表就更好了,其中键是值并且值是此值的坐标列表:
a = [[279, 629, 590], [382, 825, 279], [629, 569, 113], [382, 785, 296]]
from collections import defaultdict
elements = defaultdict(list)
for row_index in range(len(a)):
for col_index in range(len(a[row_index])):
elements[a[row_index][col_index]].append([row_index, col_index])
下一步是创建一个list
的值和你指定的坐标:
multiples = [[[i], elements[i]] for i in elements if len(elements[i]) > 1]
这将是:
[[[629], [(0, 1), (2, 0)]],
[[279], [(0, 0), (1, 2)]],
[[382], [(1, 0), (3, 0)]]]