将列表打印成网格

-1 投票
6 回答
1945 浏览
提问于 2025-04-18 03:27

我有一组值,想把它们以网格的形式展示出来:

列表 = ["aaaaaaaaa","bbbbbbbbb","ccccccccc"]

我希望它们能像这样打印出来:

a a a a a a a a a

b b b b b b b b b

c c c c c c c c c

6 个回答

0

更高效的写法是:print("\n\n".join((" ".join(list(line))) for line in List))

这段代码的意思是,把一个叫做“List”的列表里的每一行都处理一下,然后把处理后的结果用两个换行符连接起来,最后打印出来。

具体来说,list(line)是把每一行的内容变成一个列表," ".join(list(line))则是把这个列表里的元素用空格连接成一串文字。然后,"\n\n".join(...) 是把所有处理后的行用两个换行符连接在一起,形成最终的输出。

0

使用一个 for 循环和 " ".join() 方法。然后打印一个空字符串来换行(或者你也可以用 '\n')。

>>> List = ["aaaaaaaaa","bbbbbbbbb","ccccccccc"]
>>> for k in List:
...     print(" ".join(k))
...     print("")
... 
a a a a a a a a a

b b b b b b b b b

c c c c c c c c c

>>> 

**如果用 '\n' 的输出结果如下:

a a a a a a a a a


b b b b b b b b b


c c c c c c c c c
0

一种方法(虽然不是最有效的)是使用两个 for 循环。第一个循环用来遍历列表中的每个字符串,第二个循环用来遍历每个字母。然后在 print 函数的 end 参数中传入 " ",这样可以控制输出的格式:

for string in List:
    for letter in string:
        print(letter, end = " ")
    print("\n")

输出结果:

a a a a a a a a a 

b b b b b b b b b 

c c c c c c c c c 
1
print("\n".join(" ".join(line) for line in List));

内容分析:

print(
    "\n".join(           #every line on its own line
        " ".join(line)   #add a space between each character
        for line in List #loop through List
    )
)

补充:(更简单的解决方案)

print("\n".join(map(" ".join, List)))
3

这两行代码就能解决你的问题!

试试这个:

>>> for values in List:
...     print (" ".join([chars for chars in values]), "\n")

输出结果是:

a a a a a a a a a

b b b b b b b b b

c c c c c c c c c

撰写回答