一个程序,需要两个列表,并打印1个列表,其中包含常见的值
问题描述:
我试过这个,但我不知道我的代码出了什么问题,它会打印正确的值,但是,当我追加值它打印无,还有,它口口声声说有错误的行if L1[q]==L2[q]:
一个程序,需要两个列表,并打印1个列表,其中包含常见的值
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)
答
您可以使用组来获得两个列表,如交叉口:
代码:
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]
答
a= [3,1,4,5]
b= [3,4,5]
print(list(set(a)&set(b))) #<===
RESULT
[3,4,5]
+0
虽然此代码片段可能会解决问题,但[包括解释](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性注释来挤占代码,这会降低代码和解释的可读性! – Carpetsmoker
肯定是因为这两个列表长度不一样。 – bhansa