python中的列表和列表差异计算列表

时间:2015-10-02 00:35:00

标签: python

我有一个列表A(总数)和另一个列表B列表(包含列表A的子集)。需要找到这两者之间的区别。

我应该计算A和B中每个列表之间的差异

A=[a,b,c,d,e,f,g,h,j,i,k]
B=[[a,b],[e,d,k,a],[c,i]]
i.e., A - B[0], A - B[1]   like this...


output:
[c,d,e,f,g,h,j,i,k]
[b,c,f,g,h,j,i]
[a,b,d,e,f,g,h,j,k]

2 个答案:

答案 0 :(得分:0)

尝试使用套装:

[list(set(A)-set(x)) for x in B]

e.g:

A = range(10)
B = [range(5), range(6,8), range(9,10)]

输出:

[[8, 9, 5, 6, 7], [0, 1, 2, 3, 4, 5, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8]]

答案 1 :(得分:0)

这样的东西?

a=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'i', 'k']
b=[['a', 'b'], ['e', 'd', 'k', 'a'], ['c', 'i']]
def c(a,b):
    d=[]
    for i in b:
        for j in i:
            e=[]
            for k in a:
                if k not in i:
                    e.append(k)
        d.append(e)
    for k in d:
        print(k)

c(a,b)