开发人员,我想用python创建一个5x5的网格。我尝试了这段代码,但我无法生成所需的输出,这里我使用abc for while循环。
l1 = []
abc = 1
while abc == 5:
for i in range(1,6,1):
l1.append(i)
abc+=1
print(l1)
但它的外在只是[]
我想要这种类型的输出
['0','0','0','0','0']
['0','0','0','0','0']
['0','0','0','0','0']
['0','0','0','0','0']
['0','0','0','0','0']
发布于 2017-10-07 22:44:01
您的逻辑非常混乱,因为您的while循环中有一个条件abc == 5
,所以它永远不会执行。您可以通过以下方式生成所需的内容:
[[i for i in range(j, j + 5)] for j in range(0, 25, 5)]
因此,输出将是:
[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]]
如果您希望它从1开始,在25结束:
[[i for i in range(j, j + 5)] for j in range(1, 26, 5)]
因此,输出将是:
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
更新:(基于您在问题中提供的输出)
grid = [[i for i in range(j, j + 5)] for j in range(0, 25, 5)]
for item in grid:
print(item)
发布于 2017-10-08 00:29:18
以下是我的猜测,我相信你是在问:
>>> l1 = [[i for i in range(1, 6)] for _ in range(5)]
>>> print(*l1, sep='\n')
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
>>>
当您在Python shell中并想要快速查看二维列表时,这个print()
习惯用法非常简单,易于记忆和使用。
https://stackoverflow.com/questions/46621408
复制相似问题