如何迭代两个不同大小的列表以获得新列表?

2 python

现在我想建立一个包含100*50二维点的列表.我尝试过以下方法:

[(x+0.5, y+0.5) for x, y in zip(range(100), range(50))]
Run Code Online (Sandbox Code Playgroud)

这只给我50*50分.我在这个答案中找到了解释这一点的原因

对于zip,新列表的长度与最短列表的长度相同.

什么是100*50正确的方式来正确获得我想要的点?

Sna*_*fee 10

好吧,我想你想要itertools.product而不是zip.

itertools.product 计算两个列表的笛卡尔积,并给出总计100*50点.

你会这样做的方式

import itertools
[(x+0.5,y+0.5) for x,y in itertools.product(range(100),range(50))]
Run Code Online (Sandbox Code Playgroud)

你也可以这样做,嵌套for循环,但总的来说我会说itertools.product既可扩展又更pythonic(flat比嵌套好)