我想比较两个列表的值。
例如:
a = [1, 2, 3]
b = [1, 2, 3]
我需要检查a
是否与b
相同。我该怎么做?
答案 0 :(得分:7)
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
答案 1 :(得分:5)
只需使用
a == b
运算符==
将比较a和b的值,无论它们是否引用同一个对象。
答案 2 :(得分:-2)
@jamylak的回答是我要去的。但如果你正在寻找“几个选项”,这里有一堆:
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> a == b
True
OR
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
OR
>>> len(a)==len(b) and all((a[i]==b[i] for i in xrange(len(a))))
True
OR
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
OR
>>> all((i==j for i,j in itertools.izip(a,b)))
True
OR(如果列表仅由数字组成)
>>> all((i is j for i,j in itertools.izip(a,b)))
True
OR
>>> all((i is j for i,j in itertools.izip(a,b)))
True
希望满足你的胃口;]