如何在python中比较两个列表,对象实例

时间:2013-06-21 13:41:55

标签: python python-2.7

说我是否有:

list1 = [1,6]
list2 = [1]

如果列表值匹配,我想做点什么!

比较它并在那之后做事

3 个答案:

答案 0 :(得分:17)

嗯,好像这样?

if list1 == list2: # compare lists for equality
    doStuff()      # if lists are equal, do stuff after that   

当然,您需要澄清“如果列表值匹配”是什么意思。上面将检查两个列表是否具有相同的元素,位于相同的位置 - 也就是说,如果它们相等

修改

问题不明确,让我们看一些可能的解释。要检查list1中的所有元素是否也在list2中,请执行以下操作:

if all(x in list2 for x in list1):
    doStuff()

或者对属于list1的{​​{1}}中的每个元素执行某些操作,请执行以下操作:

list2

答案 1 :(得分:1)

使用any()

>>> L1 = [1,6]
>>> L2 = [1]
>>> any(i in L1 for i in L2)
True

相当多,它遍历L2中的每个项目,如果L2中的任何项目位于L1,那么它将返回True

如果你想看看每个项目是否在另一个列表中,并打印出哪些是哪个,哪些不是:

>>> for i in L2:
...     if i in L1:
...             print i, "is in L1"
...     else:
...             doStuff(i)

答案 2 :(得分:0)

简单方法,但不一定效率最高(使用all()代替any()):

listsEqual = len(list1) == len(list2) and all(list1[i] == list2[i] for i in range(len(list1))