我想知道如何合并共享元素的数组,共享的元素是另一个数组。
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(数组)