使用嵌套列表打印数字5x5

时间:2018-12-04 17:47:05

标签: python python-3.x

有没有一种方法可以更轻松地编写下面的代码?代码:

lista = []

for i in range(5):
    lista.append([])    # >>> [[], [], [], [], []]

l25 = []
for i in range(1, 26):
    l25.append(str(i).zfill(2))

part = 5
k = 0
while k < len(lista):
    lista[k] = l25[part-5:part]
    k = k + 1
    part = part + 5

i = 0
while i < len(lista):
    print(*lista[i], sep="  ")
    i = i + 1

我想使用嵌套列表,其中包含多个列表。

上面的代码将打印:

01  02  03  04  05
06  07  08  09  10
11  12  13  14  15
16  17  18  19  20
21  22  23  24  25

2 个答案:

答案 0 :(得分:6)

您可以使用列表理解功能构建网格,然后打印它:

grid = [[str(i).zfill(2) for i in range(j, j + 5)] for j in range(1, 26, 5)]

for line in grid:
    print('  '.join(line))

输出

01  02  03  04  05
06  07  08  09  10
11  12  13  14  15
16  17  18  19  20
21  22  23  24  25

答案 1 :(得分:2)

您可以使用itertools.count

from itertools import count

counter = count(1)

lista = [[str(next(counter)).zfill(2) for j in range(5)] for i in range(5)]

i = 0
while i < len(lista):
    print(*lista[i], sep="  ")
    i = i + 1

输出

01  02  03  04  05
06  07  08  09  10
11  12  13  14  15
16  17  18  19  20
21  22  23  24  25