`tabulate`按键排序列

时间:2016-03-18 13:41:23

标签: python python-2.7

我想以不同的列顺序打印列表输出。我使用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

1 个答案:

答案 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