如何将两个列表组合成第三个列表?

时间:2017-10-03 04:00:04

标签: python list

我有三个清单列表:

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的特定索引。输出只是一个示例输出。它可以是任何顺序。

2 个答案:

答案 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']]