Python 列表中数组的非元素配对

Python 列表中数组的非元素配对,python,arraylist,pairwise,Python,Arraylist,Pairwise,假设我有一个列表,列表=[[0,1,2],[1,2,0],[2,1,3],[3,1,2]]。我想对列表中的数组位置进行匹配和分组,尽管它们的位置不同,但它们的数字相同,并获得它们的索引。 例如,我的代码应该给出[0,1,2]和[1,2,0]是相同的,它们的位置是0和1。我需要一个代码来像这样对列表中的所有元素进行分组。 我知道使用for和if循环执行此操作的基本方法,但我想知道在python中是否有一种有效的方法 编辑-我用下面的代码实现了这个解决方案,它正在做我想做的事情。我想知道有没有一个有

假设我有一个列表,列表=[[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)

如评论中所述,您的问题不清楚,可能重复。我认为你想要的是,在组成元素的基础上,将所有数组视为相等的,如果这是你想要的,那么试着使用set和frozenset

''' Example all arrays like [0,1,2], [0,2,1], [1,0,2], [1,2,0], [2,0,1], [2,1,0] will be equal to frozenset({0,1,2}) '''
list1 = [[0,1,2], [0,2,1], [1,0,2], [1,2,0], [2,0,1], [2,1,0],[2,1,3],[3,1,2]]
tmp ={frozenset(x) for x in list1}
print(tmp)
output: {frozenset({0, 1, 2}), frozenset({1, 2, 3})}

您还提到,您已经有了使用for和if的问题解决方案,请尝试将其添加到此处,以便我们可以确定您到底想要什么。

您没有数组列表,而是有一个列表元组。什么是“配对”?请相应地编辑并格式化您的问题。对不起,我是该平台的新手。有时我不知道某些事物的确切术语。感谢您的帮助。谢谢Hanks rohan,正如你所问,我已经添加了我的解决方案,我使用了unique而不是frozenset,但最后我需要的是每个frozenset的分组索引。在您的示例中,最后我想要的是[[0,1,2,3,4,5],[6,7]。您可以看到我附带的结果。