Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 使用'x,y'列出理解与打印结果_Python_Loops_List Comprehension - Fatal编程技术网

Python 使用'x,y'列出理解与打印结果

Python 使用'x,y'列出理解与打印结果,python,loops,list-comprehension,Python,Loops,List Comprehension,我想知道为什么我会得到以下输出: 邮政编码为[2,5],[4,3]的x,y的: 打印(x) 打印('你好') 打印(y) 输出: 2 你好 4. 5. 你好 3. 虽然我期望输出为: 2 你好 5. 4. 你好 3. 因为我运行的是x,y,但出于某种原因,它会打印出所有x,然后是所有y。任何解释?zip按顺序运行输入项,这意味着zip(x,y,…)将访问以下项: x[0], y[0], ... x[1], y[1], ... x[2], y[2], ... x[3], y[3], ...

我想知道为什么我会得到以下输出:

邮政编码为[2,5],[4,3]的x,y的
:
打印(x)
打印('你好')
打印(y)
输出:

2
你好
4.
5.
你好
3.
虽然我期望输出为:

2
你好
5.
4.
你好
3.

因为我运行的是
x,y
,但出于某种原因,它会打印出所有
x
,然后是所有
y
。任何解释?

zip
按顺序运行输入项,这意味着
zip(x,y,…)
将访问以下项:

x[0], y[0], ...
x[1], y[1], ...
x[2], y[2], ...
x[3], y[3], ...
...
它将以该模式继续,直到完成最短的输入

在您的示例中,
x=[2,5]
y=[4,3]
zip()函数返回一个zip对象,它是一个元组迭代器,其中每个传递的迭代器中的第一项成对在一起,然后每个传递的迭代器中的第二项成对在一起


因此,在您的示例中,最初运行的是:2,4。在3和5的第二次迭代中,您得到的输出与
zip
的工作方式一致-将“zip”视为“zipper”。要获得您想要的序列,您最好使用
iterools.chain

from itertools import chain

for x in chain([2,5],[4,3]):
    print(x)
    print('hello')

你知道
zip
做什么吗?如果你省略
zip
,你会得到预期的输出,那么你认为
zip
做什么呢?
2
hello
5
hello
4
hello
3
hello