我如何才能像这样转换2d列表?
lista=[[1, 2, 3],[3, 4, 5],[8, 5, 9]] to
listb=[[1 2 3]
[3 4 5]
[8 5 9]]
答案 0 :(得分:3)
正如已经指出的那样,你所拥有的基本上与Python中一个列表的表示基本相同,因此列出转换列表并没有多大意义。但是,如果您想要一个列表进行字符串转换 - 将列表输出为一个很好的字符串的方法,您可以选择pprint
或漂亮的打印。这是标准库中的模块,看起来非常接近您正在寻找的内容:
import pprint
l = [[1, 2, 3],[3, 4, 5],[8, 5, 9]]
pprint.pprint(l, width=12)
提供输出
[[1, 2, 3],
[3, 4, 5],
[8, 5, 9]]
现在我不得不人为地减少其最大宽度,因为您的列表很短,pprint
默认情况下不认为它们值得缩短。
另外,如果你想在你的程序中使用字符串表示,你可以用几乎相同的方式使用pprint.pformat
,除了它返回一个字符串:
import pprint
l = [[1, 2, 3],[3, 4, 5],[8, 5, 9]]
s = pprint.pformat(l, width=12)
答案 1 :(得分:2)
我假设你要找的是列表的__repr__
- 它是如何显示的。在语义上,两者是同一个。
但是,如果你想显示这样的列表,你可以这样做。
使用numpy
的简单方法:
import numpy as np
lst = [[1, 2, 3],[3, 4, 5],[8, 5, 9]]
print(np.array(lst))
[[1 2 3]
[3 4 5]
[8 5 9]]
奇怪的方式,使用vanilla python。
print('[' + '\n '.join(str(x).replace(',', '') for x in lst) + ']')
[[1 2 3]
[3 4 5]
[8 5 9]]
另一个答案提到pprint.pprint
,我认为这是2的简单替代,但灵活性有限。您可以使用pprint.pformat
来美化您的列表并删除逗号:
import pprint
print(pprint.pformat(lista, width=12).replace(',', ''))
[[1 2 3]
[3 4 5]
[8 5 9]]