如果共享元素合并数组,则元素为数组

时间:2015-09-15 08:54:42

标签: python arrays merge

我想知道如何合并共享元素的数组,共享的元素是另一个数组。

def def_ladders(bridges):
    ladders = []
    i = 0
    for b1,b2 in itertools.combinations(bridges, 2):
        if is_same_ladder(b1,b2) == 1:

            ladders.append([b1,b2])

这会产生一对数组:

[[[7, 37, 'P'], [8, 38, 'P']],
 [[137, 200, 'P'], [138, 201, 'P']],
 [[138, 170, 'P'], [139, 171, 'P']],
 [[138, 201, 'P'], [139, 202, 'P']],
 [[230, 251, 'P'], [231, 252, 'P']]]

我想将[[137, 200, 'P'], [138, 201, 'P']][[138, 201, 'P'], [139, 202, 'P']]合并,然后再将其与另一个元素合并,如果新元素与其他元素共享元素。

Output = [[[7, 37, 'P'], [8, 38, 'P']],
          [[137, 200, 'P'], [138, 201, 'P'], [139, 202, 'P']],
          [[138, 170, 'P'], [139, 171, 'P']],
          [[138, 201, 'P'], [[230, 251, 'P'], [231, 252, 'P']]]

但我希望程序检查[[137, 200, 'P'], [138, 201, 'P'], [139, 202, 'P']]是否与其他数组共享元素,等等,如果生成了新的子数组(

所以它尝试合并[[137, 200, 'P'], [138, 201, 'P'], [139, 202, 'P']]创建的所有其他子(数组),如[[138, 170, 'P'], [139, 171, 'P']],在这种情况下,它不会合并,因为它们不共享sub(数组)

0 个答案:

没有答案