我想比较两个列表的值。
例如:
a = [1, 2, 3]
b = [1, 2, 3]
我需要检查是否a
相同b
。我怎么做?
a == b
这是一个非常简单的测试,它检查所有值是否相等。
如果您想检查a
和是否b
都引用同一个列表,您可以使用is
.
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b # a and b have the same values but refer to different lists in memory
False
>>> a = [1, 2, 3]
>>> b = a
>>> a is b # both refer to the same list
True
只需使用
a == b
运算符==
将比较 a 和 b 的值,无论它们是否引用同一个对象。
@jamylak 的答案是我会选择的。但是,如果您正在寻找“几种选择”,这里有一堆:
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> a == b
True
或者
def check(a,b):
if len(a) != len(b):
return False
for i in xrange(len(a)):
if a[i] != b[i]:
return False
return True
或者
>>> len(a)==len(b) and all((a[i]==b[i] for i in xrange(len(a))))
True
或者
def check(a,b):
if len(a) != len(b):
return False
for i,j in itertools.izip(a,b):
if i != j:
return False
return True
或者
>>> all((i==j for i,j in itertools.izip(a,b)))
True
或(如果列表仅由数字组成)
>>> all((i is j for i,j in itertools.izip(a,b)))
True
或者
>>> all((i is j for i,j in itertools.izip(a,b)))
True
希望能满足你的胃口;]