两个列表查找值

时间:2018-10-17 03:08:53

标签: python python-3.x list if-statement

应该看起来像这样:

if items in both lists (equal/ larger/smaller):
   do something
else:
   if items in both lists (equal/ larger/smaller):
       do something
   else:
       do something

1 个答案:

答案 0 :(得分:1)

好吧,目前还不清楚,但看来这就是您想要的:

list3 = [i for i in list2 if i not in list1]

现在:

print(list3)

是:

[4]

如果您关心一个元素列表,请执行以下操作:

print(next(iter(list3),list3))

然后输出:

4

例如,如果list3是一个包含1个以上元素的列表,则:

[1,2]

这仍然会输出:

[1,2]

或使用^运算符设置集合(第二部分用于切出列表的前半部分):

list3 = list(set(list2)^set(list1))
list3=list3[len(list3)//2:]

现在:

print(list3)

是:

[4]

然后也可以将next的内容用于list3

或者可以执行symmetric_difference

list3 = set.symmetric_difference(set(list1),set(list2))
list3=list(list3)[len(list3)//2:]

现在:

print(list3)

是:

[4]

可以为next做同样的事情

并且您希望进行一次循环:

l=[i for i in list2 if i not in list1]
it=iter(l)
while l!=list3:
   list3.append(next(it))

执行此操作的一种伪方法...

现在:

print(list3)

是:

[4]

并且可以做同样的next事情

甚至更好:

num = 0
while num < len(list2):
    if list2[num] != list1[num]:
        list3.append(list2[num])
    num += 1

现在:

print(list3)

是:

[4]

并且可以做同样的next事情