说如果我有:
list1 = [1,6]
list2 = [1]
如果列表值匹配,我想做点什么!
比较它,然后做一些事情
嗯,这样吗?
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
或者要对也属于 in的每个元素做一些事情list2
,请执行以下操作:
for e in set(list1) & set(list2):
doStuff(e)
使用any()
:
>>> L1 = [1,6]
>>> L2 = [1]
>>> any(i in L1 for i in L2)
True
几乎,它会遍历 in 中的每个项目,L2
如果 L2 中的任何项目在 in L1
,那么它将返回True
。
如果您想查看每个项目是否在另一个列表中,并打印哪些是哪些不是:
>>> for i in L2:
... if i in L1:
... print i, "is in L1"
... else:
... doStuff(i)
简单的方法,虽然不一定是最有效的(使用all()
代替any()
):
listsEqual = len(list1) == len(list2) and all(list1[i] == list2[i] for i in range(len(list1))