如何比较python中两个列表的值?

时间:2012-07-14 06:32:08

标签: python list

我想比较两个列表的值。

例如:

a = [1, 2, 3]
b = [1, 2, 3]

我需要检查a是否与b相同。我该怎么做?

3 个答案:

答案 0 :(得分:7)

a == b

这是一个非常简单的测试,它检查所有值是否相等。

如果您想检查ab是否都引用相同的列表,您可以使用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

希望满足你的胃口;]

相关问题