用python以表格格式打印列表
我正在尝试将多个列表(等长)打印为一个表的列用python以表格格式打印列表,python,tabular,Python,Tabular,我正在尝试将多个列表(等长)打印为一个表的列 我正在从一个.txt文件中读取数据,在代码的末尾,我有5个列表,我希望将它们打印为列分隔,但空格。假设您有一个列表列表: for L in list_of_lists: print " ".join(L) str.join(iterable)函数通过给定的字符串连接iterable的组件 因此,”.join([1,2,3])变成了“1,2,3” 如果我可能误解了这个问题,那么每个列表都应该是一列: for T in zip(list1, l
我正在从一个.txt文件中读取数据,在代码的末尾,我有5个列表,我希望将它们打印为列分隔,但空格。假设您有一个列表列表:
for L in list_of_lists:
print " ".join(L)
str.join(iterable)
函数通过给定的字符串连接iterable的组件
因此,”.join([1,2,3])
变成了“1,2,3”
如果我可能误解了这个问题,那么每个列表都应该是一列:
for T in zip(list1, list2, list3, list4, list5):
print " ".join(T)
zip()
将给定列表合并到一个元组列表中:
>>> zip([1,2,3], [4,5,6], [7,8,9])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
干杯 我将向您展示一个3列表模拟:
>>> l1 = ['a', 'b', 'c']
>>> l2 = ['1', '2', '3']
>>> l3 = ['x', 'y', 'z']
>>> for row in zip(l1, l2, l3):
... print ' '.join(row)
a 1 x
b 2 y
c 3 z
将\t
作为制表字符
快速示例:
In [1]: a = [['1','2'],['3','4']]
In [5]: for nested_list in a:
...: print '\t'.join(nested_list)
...:
1 2
3 4
你可以用我的包裹。它支持按行或列添加数据,甚至混合这两种方法。您可以插入、删除、更新任何行或列
用法
玩得开心试试我的
注意:这个答案已经发布在这个和这个上了
我刚刚为这个做了一个图书馆,我想这真的很有帮助。它非常简单,所以我认为你应该使用它。它被称为表格It
基本用途
要使用它,请首先按照上的下载说明进行操作
然后导入它:
导入TableIt
然后制作一个列表,其中每个内部列表都是一行:
表=[
[4,3,“你好”],
[2, 1, 808890312093],
[5,“你好”,“再见”]
]
然后,您所要做的就是打印它:
TableIt.printTable(表格)
这是您得到的输出:
+--------------------------------------------+
| 4 | 3 | Hi |
| 2 | 1 | 808890312093 |
| 5 | Hi | Bye |
+--------------------------------------------+
+-----------------------+
| | a | b |
+-------+-------+-------+
| x | a + x | a + b |
| z | a + z | z + b |
+-----------------------+
字段名
如果愿意,可以使用字段名(如果不使用字段名,则不必说useFieldNames=False,因为默认情况下设置为该值)):
printTable(table,useFieldNames=True)
从中您将得到:
+--------------------------------------------+
| 4 | 3 | Hi |
+--------------+--------------+--------------+
| 2 | 1 | 808890312093 |
| 5 | Hi | Bye |
+--------------------------------------------+
还有其他用途,例如,您可以这样做:
导入TableIt
myList=[
[“姓名”、“电子邮件”],
[“理查德”richard@fakeemail.com"],
[“塔莎”tash@fakeemail.com"]
]
TableIt.print(myList,useFieldNames=True)
由此:
+-----------------------------------------------+
| Name | Email |
+-----------------------+-----------------------+
| Richard | richard@fakeemail.com |
| Tasha | tash@fakeemail.com |
+-----------------------------------------------+
或者你可以:
导入TableIt
myList=[
[,“a”,“b”],
[“x”、“a+x”、“a+b”],
[“z”,“a+z”,“z+b”]
]
printTable(myList,useFieldNames=True)
从中你可以得到:
+--------------------------------------------+
| 4 | 3 | Hi |
| 2 | 1 | 808890312093 |
| 5 | Hi | Bye |
+--------------------------------------------+
+-----------------------+
| | a | b |
+-------+-------+-------+
| x | a + x | a + b |
| z | a + z | z + b |
+-----------------------+
颜色
你也可以使用颜色
通过使用颜色选项(默认设置为无)并指定RGB值,可以使用颜色
使用上面的示例:
导入TableIt
myList=[
[,“a”,“b”],
[“x”、“a+x”、“a+b”],
[“z”,“a+z”,“z+b”]
]
printTable(myList,useFieldNames=True,color=(26156171))
然后你会得到:
+--------------------------------------------+
| 4 | 3 | Hi |
+--------------+--------------+--------------+
| 2 | 1 | 808890312093 |
| 5 | Hi | Bye |
+--------------------------------------------+
请注意,打印颜色可能不适合您,但它的工作原理与打印彩色文本的其他库完全相同。我已经测试过了,每一种颜色都有效。蓝色也不会像使用默认的34m
ANSI转义序列那样乱七八糟(如果你不知道那是什么,那没关系)。不管怎么说,这一切都源于这样一个事实,即每种颜色都是RGB值,而不是系统默认值
更多信息
要了解更多信息,请查看,他希望每个子列表都是一列,而不是一行。那么,我想我没有正确理解这个问题。虽然我仍然不知道他是什么意思,但似乎我是唯一一个理解这一点的人:/对于花哨的gui显示,您可以使用PyQt,一个QTableWidget。