[英]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
在上面的程序中, a
和b
什么区别? 为什么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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.