一个程序,它接受两个列表,并打印1个列表,其中包含常见的值

时间:2017-05-04 18:43:23

标签: python

我试过这个,但是我不知道我的代码出了什么问题,它打印了正确的值,但是,当我追加它打印的值时没有,以及它一直在说行中有错误if L1[q]==L2[q]:

a= [3,1,4,5]
b= [3,4,5]
def intersect(L1,L2):
    q=0
    w=0
    li=[]
    if len(L1)>len(L2):
        while q<len(L1):
            for i in L1:
                if L1[q]==L2[q]:
                    print li.append(L1[q])     
                    q+=1
                else:
                    L1.remove(L1[q])
    if len(L2)>len(L1):
        while w<len(L2):
            for i in L2:
                if L2[w]==L1[w]:
                    print li.append(L2[q])
                    q+=1
                else:
                    L2.remove(L2[q])
intersect(a,b)

2 个答案:

答案 0 :(得分:1)

您可以使用集合来获取两个列表的交集,如:

<强>代码:

def intersect(L1, L2):
    print(list(set(L1) & set(L2)))

测试代码:

a = [3, 1, 4, 5]
b = [3, 4, 5, 6]

intersect(a, b)

<强>结果:

[3, 4, 5]

答案 1 :(得分:0)

a= [3,1,4,5]
b= [3,4,5]
print(list(set(a)&set(b))) #<===

<强> RESULT

[3,4,5]