python两个列表怎么比较找出不同

Python024

python两个列表怎么比较找出不同,第1张

可以使用把列表转换成集合然后做它们的差集,比如我们可以从下面的例子中得出l1和l2列表不同的元素

l1 = [1,2,3,4,5]

l2 = [1,3,5]

difference = list(set(l1) - set(l2))

print(difference)

输出:

[2, 4]

l1 = list('11100101')

l2 = list('00101011')

l3 = ['1' if l1[i]==l2[i] else '0' for i in range(len(l1))]

print ''.join(l3)

简单的调试了下,效果实现了:

代码:

import random

a=['a','s','d']

b=['j','k','l']

c=['o','p','q']

d=[]

cont=''

test=[a,b,c] 

random.shuffle(test) #把test列表打乱,防止下面的for循环默认从a列表开始遍历,做到随机的效果

for i in test:

    d.append(i[random.randint(0,2)]) #随机从列表里获取一个元素放进d列表内,能实现从a,b,c列表里分别都随机获取一个元素

#对返回顺序进行处理

if d[0] in a:

    cont+='a'

    if d[1] in b:

        cont+='.b.c'

    else:

        cont+='.c.b'

elif d[0] in b:

    cont+='b'

    if d[1] in a:

        cont+='.a.c'

    else:

        cont+='.c.a'

elif d[0] in c:

    cont+='c'

    if d[1] in a:

        cont+='.a.b'

    else:

        cont+='.b.a'

print(d)

print(cont)

测试结果:

功能是实现了,不过代码看起来有点多,你觉得不够好可以再优化一下