说我是否有:
list1 = [1,6]
list2 = [1]
如果列表值匹配,我想做点什么!
比较它并在那之后做事
答案 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))