我想使用列表理解来创建 2-numbers-tuple - (0,0) , (0,1) , ... (0,N-1) , (1,0) ... (N-1,N-1)
的列表。
我使用过这样的内容:[(x,y) for x in range(3) for y in range(x)]
其中3是N
,但显然无效(输出[(1, 0), (2, 0), (2, 1)]
)。
我可以用
做到这一点l = []
for x in range(3):
for y in range(3):
l += [(x,y)]
但是如何在单行中构建我想要的列表呢?
编辑列表理解迭代界限中显然存在一个让我感到困惑的错误。将其更改为[(x,y) for x in range(3) for y in range(3)]
会解决它。谢谢,抱歉
答案 0 :(得分:4)
你可以做到
[(x,y) for x in range(3) for y in range(3)]
答案 1 :(得分:3)
您可以使用itertools.product()
:
list(itertools.product(range(3), repeat=2))
答案 2 :(得分:1)
您提供的代码段(用n
代替3
)可以写成一行
[(x, y) for x in range(n) for y in range(n)]