为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 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 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信