有什么方法可以自动加入具有相同集合中相同值的列表?

时间:2019-07-02 10:44:19

标签: python

我有一个列表数组,我想将所有具有重复值的列表合并。

例如,如果我有下一个数组a:

import numpy as np

a=np.array([[1,2,3],[4,3,2],[10,8,9],[72,3,6]])

预期结果应该是:

result=array([[ 1,  2,  3, 4, 6, 72],
              [ 10,  8,  9]])

1 个答案:

答案 0 :(得分:0)

您正在谈论的是一个称为“ 不相交集”的数据结构。
尽管它不是python内置的,但可以根据您的情况轻松制作一个简单的模型。

def merge_sets (arrays): # arrays could be your np array
  sets = list()
  for a in arrays:
    sets.append(a)
  a, b = 0, 1
  while a < len(sets):
    if b < len(sets) and sets[a].intersect(sets[b]):
      c = sets[a].union(sets[b])
      sets.remove(a)
      sets.remove(b)
      sets.append(c)
  return sets

P.S。这只是一个粗略的实现,以演示如何实现。尚未检查其谬误。