我尝试在元组上使用列表理解,在解包时效果很好,但在分配给单个变量时效果不佳。
如果我运行代码
var1, var2, var3 = (i for i in range(3))
正如预期的那样,var1 =
1
,var2 = 2
,var3 = 3
。然而,跑步的时候
varTuple = (i for i in range(3))
varTuple =
<generator object <genexpr> at [MEMORY ADDRESS]>
,而不是预期的(1, 2, 3)
您创建了一个生成器表达式而不是列表(或集合或字典)理解。
在第一种情况下,您要解压缩该生成器,因此它会生成三个值。在第二种情况下,您不是,因此没有生成任何值。