python - 如何通过将不同大小写的相同字母视为python中的相同字母来按字母顺序对列表进行排序
问题描述
如果输入是这样的['z','t','Z','a','b','A','d']
,那么在排序后我想得到像['a','A','b','d','t','z','Z']
或这样的输出['A','a','b','d','t','Z','z']
。
解决方案
这将始终首先排序大写字母:
lst = ['z','t','Z','a','b','A','d']
print(sorted(lst, key=lambda k: 2*ord(k.lower()) + k.islower()))
印刷:
['A', 'a', 'b', 'd', 't', 'Z', 'z']
编辑感谢评论中的@MadPhysicist,另一个变体:
print(sorted(lst, key=lambda k: (k.lower(), k.islower())))
推荐阅读
- apigee - 撤销访问令牌
- javascript - 如何在javascript版本的protobuf中获取自定义选项值?
- node.js - React Redux - 将多个商店增强器传递给 createStore() 时出错
- python - 所有可能的组合作为基于主列的数据框的新列
- asp.net-mvc-4 - 如何将列表值从一个 Action 方法传递到同一个控制器中的另一个?
- google-chrome - chrome中cookie大小的度量单位是什么?
- java - 为什么会多次调用 BroadcastReceiver?
- datatables - 使用jquery Datatable的行分组2列表数据
- android - Jetpack 导航组件回栈
- h2o - 在 H2O Flow UI 中安装新包