我想以不同的列顺序打印列表输出。我使用tabulate
但可以使用其他工具。字符串有不同的长度,部分问题是“自动”定义列长度,表格确实很好!
代码:
parameter_list = []
parameter_list.append({
'A': "Hello",
'B': "You",
'C': False
})
parameter_list.append({
'A': "Salue",
'B': "Tu",
'C': False
})
print tabulate(parameter_list, headers='keys')
输出 - IS:
A B C
----- --- -----
Hello You False
Salue Tu False
输出 - 想要:
C A B
----- ----- ---
False Hello You
False Salue Tu
答案 0 :(得分:2)
原因是因为dict
是无序的。您可以使用OrderedDict
模块中的collections
。
>>> from collections import OrderedDict
>>> from tabulate import tabulate
>>> parameter_list = []
>>> parameter_list.append(OrderedDict([('C', False), ('A', 'Hello'), ('B', 'you')]))
>>> parameter_list.append(OrderedDict([('C', False), ('A', 'Salue'), ('B', 'Tu')]))
>>> print tabulate(parameter_list, headers='keys')
C A B
--- ----- ---
0 Hello you
0 Salue Tu