-1
只是想知道以下的列表:蟒:比较元组
print [()] == list(tuple()) # prints False
首先是含有空的元组列表,第二个是一个空列表。
为什么这段代码输出False而不是True(在python 2和3中结果相同)?
在此先感谢!
只是想知道以下的列表:蟒:比较元组
print [()] == list(tuple()) # prints False
首先是含有空的元组列表,第二个是一个空列表。
为什么这段代码输出False而不是True(在python 2和3中结果相同)?
在此先感谢!
您将列表与空列表中的一个元素(空元组)进行比较。 list(tuple())
不符合您的想法。
这是因为list(object)
确实不是产生一个列表与该对象作为一个元素。 list()
将转换为列表,该对象必须可迭代。它复制的元素出对象的:
>>> dictionary = {'foo': 'bar'}
>>> list(dictionary) # iteration over a dictionary produces keys
['foo']
你给它一个空的元组,所以结果是空列表:
>>> empty =()
>>> list(empty)
[]
tuple()
做同样的事情,顺便说一句。并且list()
和tuple()
没有参数产生一个空的对象。
因为它们不会产生相同的结果吗?第一个是带有1个元素的列表,第二个是带有零个元素的列表。 'list()'**将一个迭代器转换为一个列表**。一个元组是一个可迭代的,你*将一个空元组转换为一个列表。 –
明白了,谢谢! – NI6