Python中数据的排序
2023-09-11 14:14:04 时间
目录
列表的排序
列表的排序可以使用列表自带的 sort() 方法,也可以使用 sorted() 函数
sort() 方法是修改原列表;而 sorted() 函数是对列表的复制再排序,返回一个新的列表,两者有区别。
sort(key,reverse)方法
对于列表中的元素是数字的话,默认是按照大小排序
>>a=[3,1,6,2,-4,7]
>>a.sort() //从小到大
>>print(a)
[-4, 1, 2, 3, 6, 7]
>>a.sort(reverse=Ture) //倒序,从大到小
>>print(a)
[7, 6, 3, 2, 1, -4]
还可以传入参数 key,key参数是对要排序的数据的操作
>>a.sort(key=lambda x:abs(x))
>>print(a)
[1, 2, 3, -4, 6, 7]
对于列表中元素是字符串的话,默认是按照 元素第一个字母的ASCII 值来排序
>>a=['day','Back','alice','Change']
>>a.sort() //默认是安装第一个字母的ASCII值排序
>>print(a)
['Back', 'Change', 'alice', 'day']
>>a.sort(key=str.lower) //不区分第一个字母的大小写排序
>>print(a)
['alice', 'Back', 'Change', 'day']
sorted(target,key,reverse) 函数
对于列表中的元素是数字的话,默认是按照大小排序
>>a=[3,1,6,2,-4,7]
>>b=sorted(a)
>>print(b)
[-4, 1, 2, 3, 6, 7] //从小到大
>>c=sorted(a,reverse=True)
[7, 6, 3, 2, 1, -4] //倒序,从大到小
>>d=sorted(a,key=lambda x:abs(x))
[1, 2, 3, -4, 6, 7]
对于列表中元素是字符串的话,默认是按照 元素第一个字母的ASCII 值来排序
>>a=['day','Back','alice','Change']
>>b=sorted(a) //默认是安装第一个字母的ASCII值排序
>>print(b)
['Back', 'Change', 'alice', 'day']
>>c=sorted(a,key=str.lower) //不区分第一个字母的大小写排序
>>print(c)
['alice', 'Back', 'Change', 'day']
元组tuple的排序
sort(key,reverse)方法
元组自身没有 sort() 排序方法,要对元组用 sort() 进行排序,我们可以先将元组转换成list 列表,然后排序,最后再转换成元组。
>>a=(3,1,6,2,-4,7)
>>b=list(a)
>>b.sort() //也可以传入key和reverse参数
>>a=tuple(b)
>>print(a)
(-4, 1, 2, 3, 6, 7)
sorted(target,key,reverse)函数
>>a=(3,1,6,2,-4,7)
>>b=sorted(a) //也可以传入key和reverse参数
>>print(b)
[-4, 1, 2, 3, 6, 7]
字符串的排序
python中的字符串类型是不允许直接修改元素的。必须先把要排序的字符串放在容器里,如 list 。然后再利用 list 的 sort() 方法排序
>>a="hello,word!"
>>b=list(a)
>>b.sort()
>>print(b)
['!', ',', 'd', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
>>c="".join(b)
>>print(c)
!,dehlloorw
或者直接一行搞定
>>a="hello,word!"
>>s="".join((lambda x:(x.sort(),x)[1])(list(s)))
>>print(s)
!,dehlloorw
或者利用 sorted() 函数
>>a="hello,word!"
>>b=sorted(a)
>>print(b,type(b))
['!', ',', 'd', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w'] <class 'list'>
>>c="".join(b)
>>print(c)
!,dehlloorw
字典的排序
对字典进行排序?这其实是一个伪命题,搞清楚python字典的定义---字典本身默认以key的字符顺序输出显示---就像我们用的真实的字典一样,按照abcd字母的顺序排列,并且本质上各自没有先后关系,是一个哈希表的结构:
但实际应用中我们确实有这种排序的“需求”-----安装key值首字母的ASCII值排序,按照values的值排序,或者按照别的奇怪的顺序进行输出,我们只需要把字典转化成 lis t或者 tuple,把字典每一对键值转化为list中的两位子list或者子tuple再输出,就可以达到我们的目的
import operator
stu={'name':'xie','age':"20",'id':"40",'sex':'man'}
##安装key值升序进行排列
a=dict(sorted(stu.items(),key=operator.itemgetter(0),reverse=False))
##安装key值降序进行排列
b=dict(sorted(stu.items(),key=operator.itemgetter(0),reverse=True))
##安装value值升序进行排列
c=dict(sorted(stu.items(),key=operator.itemgetter(1),reverse=False))
##安装value键值降序进行排列
d=dict(sorted(stu.items(),key=operator.itemgetter(1),reverse=True))
print(stu)
print(a)
print(b)
print(c)
print(d)
##############################################################
{'name': 'xie', 'age': '20', 'id': '40', 'sex': 'man'}
{'age': '20', 'id': '40', 'name': 'xie', 'sex': 'man'}
{'sex': 'man', 'name': 'xie', 'id': '40', 'age': '20'}
{'age': '20', 'id': '40', 'sex': 'man', 'name': 'xie'}
{'name': 'xie', 'sex': 'man', 'id': '40', 'age': '20'}
相关文章
- Python中数据的排序
- python语法基础_01.Python基础
- 【华为OD机试真题 python】 连续字母长度【2022 Q4 | 100分】
- 选择一个 Python Web 框架:Django vs Flask vs Pyramid
- 【零基础学python】:清华官方出品的《看漫画学Python》全彩PDF,495页资源分享
- 24岁非计算机专业工科妹子裸辞转行Python程序员,自学Python三个月,零基础如何系统学习python,从入门到精通?
- 每天一个python小知识——如何在Python 3中转换数据类型
- Python分享:python爬虫可以用来做什么?
- 配置利用神经网络进行图片分类的某Python程序的运行环境记录(下)-安装scipy、scikit-learn、skimage、tensorflow、tflearn
- Python struct与小端存储
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- Python数值运算、字符操作、索引与切片、列表与字典
- Python 相对路径和绝对路径--python实战(九)
- python数字图像处理(19):骨架提取与分水岭算法
- 《Python数据科学指南》——1.22 列表排序
- 基于Python解决双目标MVS问题【100010096】
- Python 实现希尔排序(缩小增量排序)算法
- Python代码库之PDF转换为图片poppler
- 6、查找和排序——旋转数组的最小数字(python版)
- 【Python 基础】列表中的元素排序例子
- 小学生python游戏编程arcade----敌人自动面向角色并开火
- Python 工具 之 Selenium 、webdriver 的安装,以及模拟打开操作浏览器的简单实现
- python数据库操作,python从mssql 查询结果,插入到mysql表
- python第十七课——列表生成式
- python第十四课--排序及自定义函数之案例二:冒泡排序
- python第七课——循环结构 while
- Selenium4 Python实现Page Factory设计模式,python新的定位方法
- Python实现输入和排序