是否有一种简单的内置方法将2D Python列表打印为2D矩阵?
所以这:
[["A", "B"], ["C", "D"]]
会变得像
A B
C D
我找到了pprint模块,但它似乎没有做我想要的。
发布于 2019-03-01 09:03:51
您可以更新print
的end=' '
,这样它打印的空间,而不是‘在内环和外环可以有\ n’ print()
。
a=[["a","b"],["c","d"]] for i in a: for j in i: print(j, end=' ') print()
我从这里找到了这个解决方案https://snakify.org/en/lessons/two_dimensional_lists_arrays/。
发布于 2019-03-01 10:59:42
我们尝试使用更大的矩阵:
matrix = [
["Ah!", "We do have some Camembert", "sir"],
["It's a bit", "runny", "sir"],
["Well,", "as a matter of fact it's", "very runny, sir"],
["I think it's runnier", "than you", "like it, sir"]
]
s = [[str(e) for e in row] for row in matrix]
lens = [max(map(len, col)) for col in zip(*s)]
fmt = '\t'.join('{{:{}}}'.format(x) for x in lens)
table = [fmt.format(*row) for row in s]
print '\n'.join(table)
输出:
Ah! We do have some Camembert sir
It's a bit runny sir
Well, as a matter of fact it's very runny, sir
I think it's runnier than you like it, sir
UPD:对于多行单元格,这样的东西应该有效:
text = [
["Ah!", "We do have\nsome Camembert", "sir"],
["It's a bit", "runny", "sir"],
["Well,", "as a matter\nof fact it's", "very runny,\nsir"],
["I think it's\nrunnier", "than you", "like it,\nsir"]
]
from itertools import chain, izip_longest
matrix = chain.from_iterable(
izip_longest(
*(x.splitlines() for x in y),
fillvalue='')
for y in text)
然后应用上面的代码。
https://stackoverflow.com/questions/-100006397
复制相似问题