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 相关文章推荐
使用requests库制作Python爬虫
Mar 25 Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 Python
浅谈python之新式类
Aug 12 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
python字典的遍历3种方法详解
Aug 10 Python
Python学习笔记之While循环用法分析
Aug 14 Python
python框架flask表单实现详解
Nov 04 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
如何用python实现一个HTTP连接池
Jan 14 Python
Python实现聚类K-means算法详解
Jul 15 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
Content-type 的说明
2006/10/09 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
师德学习感言
2014/01/31 职场文书
物业经理自我鉴定
2014/03/03 职场文书
作文评语集锦大全
2014/04/23 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python