Python中sorted()排序与字母大小写的问题


Posted in Python onJanuary 14, 2020

今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序

研究后发现字母大小写会影响排序

首先创建一个字典,键里面的首字母有大写有小写

favorite_digit = {
    'john' : 4, 
    'Tom' : 5, 
    'Lisa' : 9, 
    'liu' : 5, 
    'alice' : 0, 
    }
for name in sorted(favorite_digit.keys()):
  print(name.title())

运行后发现与预期不符合。

Lisa
Tom
Alice
John
Liu

接着我不使用title函数又进行排序

for name in sorted(favorite_digit.keys()):
  print(name)

运行结果

Lisa
Tom
alice
john
liu

结果发现,sorted先对首字母大写进行排序,然后才对小写字母排序。正因为我使用了title,使得排序看起来十分混乱。

为了避免此类情况的发生,我先创建一个空白字典将原先字典键小写化储存,然后遍历原先的字典,将键转化为小写,同时将数据储存在新的字典中。

favorite_digit_lower = {}  #先创建一个字典将原先字典键小写化储存

for name, digit in favorite_digit.items():
  name = name.lower() #然后遍历原先的字典,将键转化为小写,同时将数据储存在新的字典中
  #print(name) #这里也可以加一个print检查name是否成功写入小写
  favorite_digit_lower [name] = digit #将原来字典的内容复制到新字典里
for name in sorted(favorite_digit_lower.keys()):
  print(name.title()) #再次打印,结果为预期结果

打印结果

Alice
John
Lisa
Liu
Tom

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python日期操作学习笔记
Oct 07 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
Python3实现的简单验证码识别功能示例
May 02 Python
Python之用户输入的实例
Jun 22 Python
python游戏地图最短路径求解
Jan 16 Python
Python简单处理坐标排序问题示例
Jul 11 Python
简单了解django orm中介模型
Jul 30 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
一文读懂Python 枚举
Aug 25 Python
OpenCV-Python实现轮廓拟合
Jun 08 Python
Python数据结构之队列详解
Mar 21 Python
Pytorch实现LSTM和GRU示例
Jan 14 #Python
Python生成词云的实现代码
Jan 14 #Python
pytorch-RNN进行回归曲线预测方式
Jan 14 #Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 #Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 #Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 #Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 #Python
You might like
第八节--访问方式
2006/11/16 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python计算三维矢量幅度的方法
2015/06/15 Python
Python base64编码解码实例
2015/06/21 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
材料专业大学毕业生自荐书
2014/07/02 职场文书
2015学校年度工作总结
2015/05/11 职场文书
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript