那么在下面的例子中list()
和{}之间的区别背后有什么解释:
glist = (x for x in (1, 2, 3))
print(list(glist))
print(list(glist))
gdict = {x:y for x,y in ((1,11), (2,22), (3,33))}
print(dict(gdict))
print(dict(gdict))
>>>
[1, 2, 3]
[]
{1: 11, 2: 22, 3: 33}
{1: 11, 2: 22, 3: 33}
Tags:
举个例子更好地理解这一点。在
调用
generator
的next
方法来生成每个元素。在现在调用生成器对象上的
^{pr2}$list
函数。在现在调用列表理解中的
list
。在所以列表理解和dict理解是相似的,这导致实际数据不像生成元素的生成器。在
这些是完全不同的东西。第一个表达式是一个生成器:在第一次迭代之后,它将耗尽,因此进一步的迭代是空的。在
第二个是dict comprehension:与list comprehension一样,它每次都返回一个新对象,在本例中是dict,因此每次迭代都在一个新dict上
区别在于,只有第一个表达式
glist
是生成器,第二个表达式gdict
是dict
-理解。如果您将第一个更改为[x for x in (1, 2, 3)]
,那么这两个将是等价的。在立即评估理解力。在
相关问题 更多 >
编程相关推荐