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比嵌套好)
| 归档时间: |
|
| 查看次数: |
3520 次 |
| 最近记录: |