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的re模块应用实例
Sep 26 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
tensorflow实现softma识别MNIST
Mar 12 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
Python 使用office365邮箱的示例
Oct 29 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
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
在Python中marshal对象序列化的相关知识
2015/07/01 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
set在python里的含义和用法
2019/06/24 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
python 如何调用远程接口
2020/09/11 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
土木工程师岗位职责
2013/11/24 职场文书
校庆团日活动总结
2014/08/28 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
2019年思想汇报
2019/06/20 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
基于Python实现对比Exce的工具
2022/04/07 Python
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android