Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:使用生成器作为“tuple”函数的输入_Python - Fatal编程技术网

Python:使用生成器作为“tuple”函数的输入

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)。 我在某处了解到,元组理解是不存在

我试图用Python对一段代码进行求值,在这里我发现了这一行:

(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)