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 相关文章推荐
pygame播放音乐的方法
May 19 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
对python中的logger模块全面讲解
Apr 28 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
python使用百度文字识别功能方法详解
Jul 23 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
Pytorch Tensor基本数学运算详解
Dec 30 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 Python
Python加密技术之RSA加密解密的实现
Apr 08 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
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Python处理session的方法整理
2019/08/29 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
python3 实现调用串口功能
2019/12/26 Python
通过实例解析Python return运行原理
2020/03/04 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
会计电算化个人求职信范文
2014/01/24 职场文书
美容院营销方案
2014/03/05 职场文书
户外活动策划方案
2014/03/12 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
法制报告会主持词
2014/04/02 职场文书
银行委托书范本
2014/04/04 职场文书
会计专业自荐信
2014/06/03 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript