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实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
python中pip的安装与使用教程
Aug 10 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
Python 循环读取数据内存不足的解决方案
May 25 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
使用Python从零开始撸一个区块链
2018/03/14 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
Flask之请求钩子的实现
2018/12/23 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Python对列表的操作知识点详解
2019/08/20 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
.NET程序员的几道面试题
2012/06/01 面试题
普通党员个人对照检查材料
2014/09/18 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
英语辞职信范文
2015/02/28 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server