目录

列表的排序

sort(key,reverse)方法

sorted(target,key,reverse) 函数

元组tuple的排序

sort(key,reverse)方法

sorted(target,key,reverse)函数

字符串的排序

字典的排序


列表的排序

列表的排序可以使用列表自带的 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中数据的排序的更多相关文章

  1. Python中对列表排序实例

    Python中对列表排序实例 发布时间:2015-01-04 09:01:50 投稿:junjie 这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考 ...

  2. Python中的字典排序

    我想将 b = {'a':234,'b':1,'c':2,'e':2387} 分别按照key和value进行排序,该怎样办呢? Python中比较常用的排序有两个函数, 一.定义 (1)一个是List ...

  3. 漫谈python中的搜索/排序

    在数据结构那一块,搜索有顺序查找/二分查找/hash查找,而排序有冒泡排序/选择排序/插入排序/归并排序/快速排序.如果遇到数据量和数组排列方式不同,基于时间复杂度的考虑,可能需要用到混合算法.如果用 ...

  4. Python中数据的保存和读取

    在科学计算的过程中,往往需要保存一些数据,也经常需要把保存的这些数据加载到程序中,在 Matlab 中我们可以用 save 和 lood 函数很方便的实现.类似的在 Python 中,我们可以用 nu ...

  5. Python中的选择排序

    选择排序 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大 ...

  6. python中数据类型转换

    python中list和str互转   1.list转str 假设有一个名为test_list的list,转换后的str名为test_str 则转换方法: test_str = "" ...

  7. python中的列表排序

    对列表进行排序是常见的操作,最简单的方式是使用sort()函数. 1.一般用法 不管列表元素是数.字符串还是元组,函数sort()总是就地操作列表,按升序进行排列元素,并返回None. #数 > ...

  8. Python 中数据的序列化和反序列化(json处理)

    概念: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming ...

  9. python中数据的保存

    1.将list中的数据写入到excel文件中 利用python包numpy(实现方式应该有许多种,这里只是记录成功实现的一种)中的savetxt 局限性:要保存的list可以为[1,2,3,4,5]这 ...

随机推荐

  1. 【转载】java类加载时机与过程

    1  开门见山 以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样.题目如下: class SingleTon { private stati ...

  2. 怎样将大批量文件进行循环分组(reduce)?

    背景   当有时候一个文件夹下有几万个几十万个文件时,我们的桌面终端打开这个文件夹可能会卡.或者将文件进行批量上传时,如果是在文件夹下全选,那么基本上浏览器就卡死了,当然也不能这样子操作滴~   题主 ...

  3. git clone 提速

    将类似于 git clone https://github.com/graykode/nlp-tutorial 的命令改成 https://github.com.cnpmjs.org/graykode ...

  4. 设计模式系列之原型模式(Prototype Pattern)——对象的克隆

    说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...

  5. java将一个list转换成一个String,中间用分隔符隔开

    List sn=[123,1231,1231,231] sn.toString();//[123,1231,1231,231] sn.join(',').toString();//123,1231,1 ...

  6. 如何在 ASP.Net Core 中使用 Lamar

    ASP.Net Core 自带了一个极简的 开箱即用 的依赖注入容器,实际上,你还可以使用第三方的 依赖注入容器 来替代它,依赖注入是一种设计模式,它能够有效的实现对象之间的解耦并有利于提高单元测试和 ...

  7. TensorFlow学习(1)

    初识TensorFlow 一.术语潜知 深度学习:深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法. 深度学 ...

  8. 设置beeline连接hive的数据展示格式

    问题描述:beeline -u 方式导出数据,结果文件中含有"|"(竖杠). 执行的sql为:beeline -u jdbc:hive2://hadoop1:10000/defau ...

  9. 11、pass,is,位运算的补充

    pass的补充 一般Python的代码是基于:和缩进来实现,Python中规定代码块中必须要有代码才算完整,在没有代码的情况下为了保证语法的完整性可以用pass代替 if 条件: pass else: ...

  10. 力扣 - 剑指 Offer 09. 用两个栈实现队列

    目录 题目 思路 代码 复杂度分析 题目 剑指 Offer 09. 用两个栈实现队列 思路 刚开始想的是用stack1作为数据存储的地方,stack2用来作为辅助栈,如果添加元素直接push入stac ...