我想以不同的列顺序打印我的列表输出。我使用 tabulate
但可以使用其他工具。字符串具有不同的长度,部分问题是“自动”定义列长度,而 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
最佳答案
原因是因为你的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
关于python - `tabulate` 按键排序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085956/