首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >打印2D Python列表

打印2D Python列表
EN

Stack Overflow用户
提问于 2019-03-01 01:02:18
回答 2查看 0关注 0票数 0

是否有一种简单的内置方法将2D Python列表打印为2D矩阵?

所以这:

代码语言:javascript
复制
[["A", "B"], ["C", "D"]]

会变得像

代码语言:javascript
复制
A    B
C    D

我找到了pprint模块,但它似乎没有做我想要的。

EN

回答 2

Stack Overflow用户

发布于 2019-03-01 09:03:51

您可以更新printend=' ',这样它打印的空间,而不是‘在内环和外环可以有\ 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/

票数 0
EN

Stack Overflow用户

发布于 2019-03-01 10:59:42

我们尝试使用更大的矩阵:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
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:对于多行单元格,这样的东西应该有效:

代码语言:javascript
复制
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)

然后应用上面的代码。

另见http://pypi.python.org/pypi/texttable

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档