使用==将一个列表与另一个列表进行比较

时间:2014-08-20 07:34:37

标签: python list

我在ipython中尝试了以下程序

In [1]: a = (1,2,3,4,5,6,7)

In [2]: b = [1,2,3,4,5,6,7]

In [3]: a
Out[3]: (1, 2, 3, 4, 5, 6, 7)

In [4]: b
Out[4]: [1, 2, 3, 4, 5, 6, 7]

In [5]: a == b
Out[5]: False

在上述计划中,ab之间的区别是什么?为什么a==b返回False?

4 个答案:

答案 0 :(得分:2)

您的atuple,使用圆括号(),而blist,使用方括号[],因此它们不是相同的数据类型,并且比较失败,尽管它们包含相同的项目:

>>> a = (1,2,3,4,5,6,7) # round brackets declare a tuple
>>> b = [1,2,3,4,5,6,7] # square brackets declare a list
>>> type(a)
<type 'tuple'>
>>> type(b)
<type 'list'>
>>> a == b
False

对于比较,您需要先将它们设为相同类型,然后才能比较内容:

>>> list(a) == b
True
>>> a == tuple(b)
True
>>> c = [1,2,3]
>>> b == c
False

答案 1 :(得分:2)

a和b有不同的类型。相反,试试这些:

a == tuple(b)
list(a) == b

答案 2 :(得分:1)

您不是在比较两个列表,而是一个包含元组的列表。

In [1]: a = (1,2,3,4,5,6,7)

In [2]: b = [1,2,3,4,5,6,7]

In [3]: type(a)
Out[3]: tuple

In [4]: type(b)
Out[4]: list

答案 3 :(得分:0)

在你的程序中,a不是列表而是元组。这就是它在检查失败的原因。要检查类型,您可以使用type功能。您可以使用list函数对类型进行类型转换以列出检查,如下所示:

>>> a = (1,2,3,4,5,6,7)
>>> b = [1,2,3,4,5,6,7]
>>> 
>>> a == b
False
>>> type(a)
<type 'tuple'>
>>> type(b)
<type 'list'>
>>> 
>>> list(a) == b
True