繁体   English   中英

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

[英]Comparing one list to another with ==

我在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?

您的a是一个元组 ,使用圆括号() ,而您的b是一个列表 ,使用方括号[] ,因此它们不是同一数据类型,并且比较失败,尽管它们包含相同的项:

>>> 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

a和b具有不同的类型。 相反,请尝试以下操作:

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

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

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

在您的程序中,不是列表而是元组。 这就是为什么它无法通过检查。 要检查类型,您可以使用类型功能。 您可以使用列表功能将元组类型转换为要检查的列表,如下所示:

>>> 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM