将列表打印成网格
我有一组值,想把它们以网格的形式展示出来:
列表 = ["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