亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Python 中對二維列表進行不區分大小寫的排序?

如何在 Python 中對二維列表進行不區分大小寫的排序?

qq_花開花謝_0 2023-05-23 16:47:13
我有一個像這樣的二維列表:mylist = [[1, "Banana", "description"],[2, "Peach", "description"],[1,"apple", "description"],[2, "orange", "description"]]我想先按數字對列表進行排序,然后按對象的“名稱”對列表進行排序。但是當我對它進行排序時,sorted(mylist)我得到以下輸出:mylist=[[1, 'Banana', 'description'], [1, 'apple', 'description'], [2, 'Peach', 'description'], [2, 'orange', 'description']]相反,我想要一個不區分大小寫的名稱排序:mylist = [[1, 'apple', 'description'], [1, 'Banana', 'description'], [2, 'orange', 'description'], [2, 'Peach', 'description']]我嘗試了密鑰key=str.casefold,但它不起作用,因為我收到以下錯誤消息:TypeError: descriptor 'casefold' for 'str' objects doesn't apply to a 'list' object
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

傳遞給鍵的項目是lists。同時,一個鍵可以輸出一個序列,例如 atuple或 a list,正如您已經看到的那樣,將按字典順序進行比較。當您沒有明確指定密鑰時,就會發生這種情況。

所以一個鍵可以轉換一個輸入列表并返回另一個列表:

sorted(mylist, key=lambda row: [row[0], row[1].casefold()])

是否要對鍵中每一行的第三個元素執行任何操作取決于您。


查看完整回答
反對 回復 2023-05-23
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號