【发布时间】:2020-03-27 11:34:31
【问题描述】:
假设我有一个列表,list=[[0,1,2],[1,2,0],[2,1,3],[3,1,2]]。我想匹配和分组列表中的数组位置,尽管它们的位置相同,但它们的数字相同,并获得它们的索引。 例如,我的代码应该给出 [0,1,2] 和 [1,2,0] 相同,它们的位置是 0 和 1。我需要一个代码来像这样对列表中的所有元素进行分组。 我知道使用 for 和 if 循环执行此操作的基本方法,但我想知道在 python 中是否有有效的方法。
编辑-我使用下面的代码实现了解决方案,它正在做我想做的事情。我想知道有没有一种有效的方法来做到这一点。
import numpy as np
pairs=[[0,1],[1,0],[1,2],[2,1]]
for j in range(4):
pairs[j]=sorted(pairs[j])
print(pairs)
pr=(len(pairs))
unique=np.unique(pairs,axis=0)
print(unique)
house_clusters=list()
for t in range(len(unique)):
uni=unique[t]
seq2=list()
for r in range (pr):
if np.array_equal(pairs[r],uni):
seq2.append(r)
house_clusters.append(seq2)
print(house_clusters)
【问题讨论】:
-
你没有数组列表,你有一个列表元组。还有什么是“对”?请相应地编辑和格式化您的问题。
-
对不起,我是这个平台的新手。有时我不知道某些东西的确切术语。任何帮助表示赞赏。谢谢