繁体   English   中英

Python元组vs生成器

[英]Python tuple vs generator

我有一个问题,理解为什么以下行之一返回生成器和另一个元组。

如何在第二行中创建生成器的确切原因和原因,而在第三行中生成一个元组?

sample_list = [1, 2, 3, 4]
generator = (i for i in sample_list)
tuple_ = (1, 2, 3, 4)

print type(generator)
<type 'generator'>

print type(tuple_)
<type 'tuple'>    

是因为元组是不可变对象,当我尝试解压缩inside () ,它无法创建元组,因为它必须更改元组元组。

您可以将元组编辑为在对值进行硬编码时创建,同时创建生成器以提供创建对象的方法。

这是有效的,因为(1,2,3,4)无法成为发电机。 在那里没有任何东西可以生成,你只是指定了所有元素,而不是获取它们的规则。

为了使你的generator成为一个元组,表达式(i for i in sample_list)必须是一个元组理解。 没有办法让元组理解,因为理解需要一个可变数据类型。

因此,应该是元组理解的语法已被重用于生成器。

括号用于三个不同的事物:分组,元组文字和函数调用。 比较(1 + 2) (整数)和(1, 2) (元组)。 generator赋值中,括号用于分组; tuple赋值中,括号是一个元组文字。 当括号包含逗号并且不用于函数调用时,它们表示元组文字。

暂无
暂无

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

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