gpt4 book ai didi

Python 漂亮的按多列排序

转载 作者:太空狗 更新时间:2023-10-30 00:48:42 25 4
gpt4 key购买 nike

我正在使用 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 将允许我编写一个函数来完成此操作,但我还没有看到实际的实现。

最佳答案

您可以调用operator.itemgetter()作为 sort_key 值。请注意,仍需要为要应用的 sort_key 提供 sortby:

import operator
from prettytable import PrettyTable


table = PrettyTable(["Name", "Grade"])
table.add_row(["Joe", 90])
table.add_row(["Sally", 100])
table.add_row(["Bill", 90])
table.add_row(["Alice", 90])
print table.get_string(sort_key=operator.itemgetter(1, 0), sortby="Grade")

打印:

+-------+-------+
| Name | Grade |
+-------+-------+
| Alice | 90 |
| Bill | 90 |
| Joe | 90 |
| Sally | 100 |
+-------+-------+

关于Python 漂亮的按多列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37423445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com