我有以下漂亮的:匯入運算子
from prettytable import PrettyTable
table = PrettyTable(["Name","Month", "Grade"])
table.title="title test"
table.add_row(["Joe","Jan", 90])
table.add_row(["Sally", "Feb", 100])
table.add_row(["Bill", "Mar", 90])
table.add_row(["Alice", "April", 90])
print(table.get_string( sortby="Month"))
這會產生以下結果:
-----------------------
| title test |
------- ------- -------
| Name | Month | Grade |
------- ------- -------
| Alice | April | 90 |
| Sally | Feb | 100 |
| Joe | Jan | 90 |
| Bill | Mar | 90 |
------- ------- -------
我正在嘗試按Month列排序,但由于它是一個字串,因此它不會像datetime. 你能告訴我如何在漂亮的表中保存日期時間物件,以便我可以對其進行排序
uj5u.com熱心網友回復:
您可以sort_key在該get_string方法上使用關鍵字引數并將其傳遞給一個 lambda 函式,該函式將月份名稱轉換為整數:
from prettytable import PrettyTable
months = ['Jan', 'Feb', 'Mar', 'Apr', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
table = PrettyTable(["Name","Month", "Grade"])
table.title="title test"
table.add_row(["Joe","Jan", 90])
table.add_row(["Sally", "Feb", 100])
table.add_row(["Bill", "Mar", 90])
table.add_row(["Alice", "Apr", 90])
print(table.get_string(sortby="Month", sort_key=lambda row: months.index(row[2]))) # where row[2] is the second item of the row (it's 1-based, *not* 0-based)
請注意,傳遞給 lambda 函式的行有四項 — 您將希望使用基于 1 的索引訪問其中的列,而不是像您可能傾向于認為的基于 0 的索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337074.html
上一篇:以6個月為間隔拆分日期
