我正在使用tabulate
模块在控制台上很好地打印信息。我正在使用python 2.6
我目前有这个:
+-------------------------------+
| Task | Status | Rating |
|---------+---------------------+
| A | Done | Good |
| B | Done | Bad |
| C | Pending | |
| D | Done | Good |
+---------+----------+----------+
我想谈谈这个:
+-------------------------------+
| Task | Status | Rating |
|---------+---------------------+
| A | Done | Good |
| B | Done | Bad |
| D | Done | Good |
| C | Pending | |
+---------+----------+----------+
以便将所有Done
组合在一起。
目前,制表会收到一个字典,我解压缩这样的值:
def generate_table(data):
table = []
headers = ['Task', 'Status', 'Rating']
for key, value in data.iteritems():
print key, value
if 'Rating' in value:
m, l = value['Status'], value['Rating']
m = m.split('/')[-1]
temp = [key,m,l]
table.append(temp)
else:
m, l = value['Status'], None
m = m.split('/')[-1]
temp = [key,m,l]
table.append(temp)
print tabulate(table, headers, tablefmt="psql")
答案 0 :(得分:2)
您可以在for循环后按状态列对结果表进行排序:
sorted(table, key=lambda status: status[1])
这将按字母顺序“分组”值。