Hol*_*ack 9 python for-loop tuples
我想创建这个元组:
a=(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7),(8,8,8),(9,9,9)
Run Code Online (Sandbox Code Playgroud)
我试过这个
a=1,1,1
for i in range (2,10):
a=a,(i,i,i)
Run Code Online (Sandbox Code Playgroud)
但是,它会在每次迭代中在其他元组内创建一个元组.
谢谢
在元组中使用逗号,然后加入:
a = ((1,1,1),)
for i in range(2,10):
a = a + ((i,i,i),)
Run Code Online (Sandbox Code Playgroud)
编辑:适应juanpa.arrivillaga的注释,如果您想坚持使用循环,这是正确的解决方案:
a = [(1,1,1)]
for i in range (2,10):
a.append((i,i,i))
a = tuple(a)
Run Code Online (Sandbox Code Playgroud)
itertools.repeat也可以在这里使用:
>>> from itertools import repeat
>>> [tuple(repeat(i, 3)) for i in range(1, 10)]
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5), (6, 6, 6), (7, 7, 7), (8, 8, 8), (9, 9, 9)]
Run Code Online (Sandbox Code Playgroud)
如果您希望最终结果位于元组的元组而不是元组列表中,您可以tuple再次换行:
>>> tuple(tuple(repeat(i, 3)) for i in range(1, 10))
((1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5), (6, 6, 6), (7, 7, 7), (8, 8, 8), (9, 9, 9))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11713 次 |
| 最近记录: |