Arrays 将列表列表打印为列,列之间具有相等的空间
我在python中有一个列表,列表中的每个列表都有相同数量的元素Arrays 将列表列表打印为列,列之间具有相等的空间,arrays,python-2.7,list,nested,Arrays,Python 2.7,List,Nested,我在python中有一个列表,列表中的每个列表都有相同数量的元素 sample_list = [['1','22222222222222222','333'], ['111111111','2','3'], ['1','2','3']] 我想打印出列表中的元素,使它们看起来像这样 1 22222222222222222 333 111111111 2 3 1
sample_list = [['1','22222222222222222','333'],
['111111111','2','3'],
['1','2','3']]
我想打印出列表中的元素,使它们看起来像这样
1 22222222222222222 333
111111111 2 3
1 2 3
在最长项目与下一列之间,将有2个空格。因此,在第二行第一列中,1的序列继续,下一列继续时,另两个空格将继续。我不知道每个元素的确切长度,因此仅使用制表符(\t)不起作用。如何将嵌套列表打印到由两个空格分隔的列组成的表中
编辑:
我希望尽可能避免使用外部模块,我需要在python 2中使用它,比如:
sample_list = [['1','22222222222222222','333'],
['111111111','2','3'],
['1','2','3']]
备选案文1:
# Store max lengths
l = [len(max(i, key=len)) for i in zip(*sample_list)]
for item in sample_list:
for idx in range(len(l)):
print(item[idx].ljust(l[idx]), end=' ')
print()
备选方案2(可读性较差,但无工件)
备选方案1(蟒蛇2):
您可以循环浏览列表并存储最长的长度,然后执行以下操作:有这么多的包为您制表数据。问题包括行和列的标题。我希望我的标题仅用于区分我忘了提到的我需要python解决方案的Columnsorry2@eclipse当然但您可能应该尝试使用解决方案2,因为它不会创建工件。额外的空间和行结束
# Store max lengths
l = [len(max(i, key=len)) for i in zip(*sample_list)]
print('\n'.join(' '.join(item[i].ljust(l[i]) for i in range(len(l)))
for item in sample_list))
# Store max lengths
l = [len(max(i, key=len)) for i in zip(*sample_list)]
for item in sample_list:
for idx in range(len(l)):
print item[idx].ljust(l[idx]), "",
print
1 22222222222222222 333
111111111 2 3
1 2 3