合并列表中有相同元素的列表
问题描述:
array = [ [1,2,3],[4,5,6],[3,4],[7,8],[8,9],[6,12,13] ]数组之间具有相同的元素,则数组合并输出:out_array = [[1,2,3,4,5,6,12,13],[7,8,9]]
a = [ [1,2,3],[4,5,6],[3,4],[7,8],[8,9],[6,12,13] ]
b = len(a)
for i in range(b):
for j in range(b):
x = list(set(a[i]+a[j]))
y = len(a[j])+len(a[i])
if i == j or a[i] == 0 or a[j] == 0:
break
elif len(x) < y:
a[i] = x
a[j] = [0]
print a
print [i for i in a if i != [0]]
output:
[[1, 2, 3], [4, 5, 6], [0], [8, 9, 7], [3, 4], [6, 10, 11]]
[[0], [4, 5, 6], [0], [8, 9, 7], [1, 2, 3, 4], [6, 10, 11]]
[[0], [0], [0], [8, 9, 7], [1, 2, 3, 4, 5, 6], [6, 10, 11]]
[[0], [0], [0], [8, 9, 7], [0], [1, 2, 3, 4, 5, 6, 10, 11]]
result
[[8, 9, 7], [1, 2, 3, 4, 5, 6, 10, 11]]
群里老司机说:len要先储存,不然每次循环会重复计算。