为什么在 Python 中解包时理解仅适用于元组?

问题描述 投票:0回答:1

我尝试在元组上使用列表理解,在解包时效果很好,但在分配给单个变量时效果不佳。

如果我运行代码

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)

python tuples list-comprehension generator iterable-unpacking
1个回答
0
投票

您创建了一个生成器表达式而不是列表(或集合或字典)理解。

在第一种情况下,您要解压缩该生成器,因此它会生成三个值。在第二种情况下,您不是,因此没有生成任何值。

© www.soinside.com 2019 - 2024. All rights reserved.