我有三个清单列表:
A=[[9, 'a'], [0, 'c'], [2, 'g'], [7, 'w'], [0, 'Q']]
B=[[0, 'a'], [0, 'c'], [0, 'w'], [0, 'Q'], [3, 'front'], [5, 'Z']]
C=[[9, 'a'], [0, 'c'], [7, 'w'], [0, 'Q']]
我希望将A和B组合成C,如下所示:
C=[[9, 'a'], [0, 'c'],[7, 'w'], [0, 'Q'],[2,'g'], [3,'front'],[5,'Z']]
基本上g列表不在C中,所以我将附加到C.Same中以获取列表B.
编辑:我不需要只附加到C的特定索引。输出只是一个示例输出。它可以是任何顺序。
答案 0 :(得分:0)
如果我正确理解了这个问题,听起来你想要添加A和B中尚未包含的C值,制作一组唯一值? 如果是这样,这就是要走的路:
C = [list(x) for x in set(tuple(x) for x in A+B+C)]
答案 1 :(得分:-1)
from itertools import zip_longest
for x,y in zip_longest(enumerate(A),enumerate(B)):
for i in x,y:
if i is not None and i[1][1] not in map(lambda i: i[1], C):
if(i[0] < len(C)):
C.insert(i[0], i[1])
else:
C.append(i[1])
print(C)
为了获得您概述的位置数据,这种方法似乎有效。它的输出是: [[3,'front'],[5,'Z'],[7,'w'],[0,'Q'],[0,'c'],[0,'w'],[ 9,'a'],[2,'g'],[0,'a']]