Python:使用生成器作为“tuple”函数的输入
我试图用Python对一段代码进行求值,在这里我发现了这一行:Python:使用生成器作为“tuple”函数的输入,python,Python,我试图用Python对一段代码进行求值,在这里我发现了这一行: (int(j) for j in input().split()) 当我运行它时,输出是: <generator object <genexpr> at 0x00000266EEC8B2C8> 我无法理解这意味着什么。我将此行修改为tuple(int(j)表示input().split()中的j),并运行了它。对于输入,我给出了123code>,输出是(1,2,3)。 我在某处了解到,元组理解是不存在
(int(j) for j in input().split())
当我运行它时,输出是:
<generator object <genexpr> at 0x00000266EEC8B2C8>
我无法理解这意味着什么。我将此行修改为tuple(int(j)表示input().split()中的j),并运行了它。对于输入,我给出了123code>,输出是(1,2,3)
。
我在某处了解到,元组理解是不存在的,那么这一行如何在没有语法错误的情况下运行呢?这一行生成一个可以迭代的“生成器”。您看到的输出是内存中创建生成器的地址
gen=(input().split()中j的int(j)
对于gen中的e:
打印(e)
(列表中x代表y)
是一个生成器。将该生成器传递给tuple()
生成一个元组,您还可以将其传递给list()
或使用列表理解。
<generator object <genexpr> at 0x00000266EEC8B2C8>
>>> def g():
... def f():
... for j in input().split():
... yield int(j)
... return tuple(f())
...
>>> g()
1 2 3
(1, 2, 3)