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发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
基于wxpython开发的简单gui计算器实例
May 30 Python
深入浅析Python中的yield关键字
Jan 24 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
对python周期性定时器的示例详解
Feb 19 Python
详解python数据结构和算法
Apr 18 Python
Python叠加两幅栅格图像的实现方法
Jul 05 Python
Python3分析处理声音数据的例子
Aug 27 Python
python实现小世界网络生成
Nov 21 Python
pytorch 实现查看网络中的参数
Jan 06 Python
python实现xml转json文件的示例代码
Dec 30 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
php学习之function的用法
2012/07/14 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
10个简化PHP开发的工具
2014/12/25 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
vue.js中$watch的用法示例
2016/10/04 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python实现GIF图倒放
2020/07/16 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
纺织工程专业个人求职信范文
2014/01/27 职场文书
创新社会管理心得体会
2014/09/12 职场文书
电影地道战观后感
2015/06/04 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
python自动化八大定位元素讲解
2021/07/09 Python
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA
Java实现注册登录跳转
2022/06/16 Java/Android