我正在使用PrettyTable以漂亮的表格格式将数据打印到终端。 按单个列排序并打印非常容易。
from prettytable import PrettyTable
table = PrettyTable(["Name", "Grade"])
table.add_row(["Joe", 90])
table.add_row(["Sally", 100])
print table.get_string(sortby="Grade", reversesort=True)
>> Table with Sally on top, because her score is highest.
我的问题是我想按两列排序。在这种代理情况下,如果有并列的情况,我希望按等级顺序打印,并按字母顺序排序。
table = PrettyTable(["Name", "Grade"])
table.add_row(["Joe", 90])
table.add_row(["Sally", 100])
table.add_row(["Bill", 90])
print table.get_string(sortby=("Grade","Name"), reversesort=True)
>> Doesn't work
文档中提到sort_key可以让我编写一个函数来实现这个功能,但我还没有看到实际的实现方法。
reverse = True
参数。 - Samaksh Guptasort_key
对我不起作用。 - Nam G VUsort_key=operator.imagegetter(-1,0)
将按照成绩降序排列,并按名称字母顺序排序。 - WombatPM