首页 > 编程语言 >python基础:sort和sorted排序

python基础:sort和sorted排序

时间:2023-02-02 11:26:14浏览次数:35  
标签:sort count name python sorted 排序 data

记录下python中使用sort和sorted排序的方法

 

1、sort

sort只能针对列表(list)进行排序,并且是对原列表进行排序,改变原列表内容

>>> a = [5,6,1,2,0,8]
>>> a.sort()
>>> a
[0, 1, 2, 5, 6, 8]
>>> 

默认为升序排序

指定reverse参数来进行降序排序

>>> a = [5,6,1,2,0,8]
>>> a.sort(reverse=True)
>>> a
[8, 6, 5, 2, 1, 0]
>>> 

 

2、sorted

sorted函数可以对任何可迭代的对象进行排序,如列表、字典、字符串,它返回的是一个新的list,并不会修改原来的数据

>>> a = '321'
>>> sorted(a)
['1', '2', '3']
>>> b = [7,2,1,5]
>>> sorted(b)
[1, 2, 5, 7]

与sort一样,sorted也是默认升序排序,可以指定reverse进行降序

>>> m = [1,5,9,2]
>>> sorted(m, reverse=True)
[9, 5, 2, 1]

 

3、对复杂对象进行排序

在sort和sorted中使用key参数来指定排序规则,key一般指定一个函数

 

对于sort,如下

def sort_fun(e):
    return e["count"]

data = [{"name": "a", "count": 8}, {"name": "c", "count": 2}, {"name": "b", "count": 30}]

data.sort(key=sort_fun)

print(data)

输出结果:
[{'name': 'c', 'count': 2}, {'name': 'a', 'count': 8}, {'name': 'b', 'count': 30}]

原始数据data是一个列表包裹字典的数据格式,按照每组元素中的count大小排序

所以定义一个函数sort_fun,它的入参是data列表中的每组字典,然后提取其中的count值,根据count值对列表进行排序

 

sorted与sort类似,如下

def sort_fun(e):
    return e["count"]

data = [{"name": "a", "count": 8}, {"name": "c", "count": 2}, {"name": "b", "count": 30}]

sorted_data = sorted(data, key=sort_fun)

print(sorted_data)

输出结果:
[{'name': 'c', 'count': 2}, {'name': 'a', 'count': 8}, {'name': 'b', 'count': 30}]

 

 一般当使用key参数时,更多的是结合lambda函数使用

data = [{"name": "a", "count": 8}, {"name": "c", "count": 2}, {"name": "b", "count": 30}]

sorted_data = sorted(data, key=lambda item: item["count"])

print(sorted_data)

输出结果:
[{'name': 'c', 'count': 2}, {'name': 'a', 'count': 8}, {'name': 'b', 'count': 30}]
>>> data1 = [{"name": "a", "count": 8}, {"name": "c", "count": 2}, {"name": "b", "count": 30}]
>>> data1.sort(key=lambda item: item["count"])
>>> data1
[{'name': 'c', 'count': 2}, {'name': 'a', 'count': 8}, {'name': 'b', 'count': 30}]

 

标签:sort,count,name,python,sorted,排序,data
From: https://www.cnblogs.com/hanmk/p/17083450.html

相关文章

  • Vscode配置python环境
    添加拓展在设置查找Tconda,输入虚拟环境的名称执行RunAnaconda......
  • python 将 csv转excel (.xls和.xlsx)的几种方式
    前言excel后缀有2种格式,.xls是从Excel97到Excel2003的默认文件格式,而.xlsx是Excel2007及更高版本的默认文件格式。.xlsx和.xls格式的主要区别在于,.xls格式......
  • python爬虫入门脚本示例
    例如在某个目录xx下,有个普通的文件,有些文件后缀*.txt,有的却没有后缀名。现在写一个程序希望将xx目录下没有后缀名的文件改成*.txt结尾。知识点:需要用到python的os模块直接......
  • python 的钩子函数
    一、什么是钩子函数hook函数就是在一定条件下才会执行的函数,将自己实现的函数挂载到挂载点上1.hook函数:就是我们自己实现的函数,函数类型与挂载点匹配(返回值,参数列表)2.......
  • robotframe work中 自定义python library使用global variable
    在用robotframework的小伙伴,有没有遇到这样一个问题:  当你用python写一个libary时, 需要用到robotframe外面定义的globalvariable. 怎么处理?  这时一般人的做......
  • Python 异步集群使用
    目前在做Python项目用到同步和异步的方法使用Redis单机,现在要增加兼容Redis集群。也就说当前项目用到中以下4种Python使用Redis的方法都用到了。-同步异步单机......
  • python jwt
    jwt->jsonwebtoken一般用于前后端分离项目的用户认证。传统校验需要把token保存在服务端。而jwt不会保存在服务端,通过客户端给的token和算法进行验证。jwt包括三段......
  • python传递的值还是引用(即改变返回值或者参数值,是否影响本身)
    Python参数传递采用的是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表或者类)的引用,就能修改对象的原始值......
  • 数据结构-详解优先队列的二叉堆(最大堆)原理、实现和应用-C和Python
    一、堆的基础1.1优先队列和堆优先队列(PriorityQueue):特殊的“队列”,取出元素顺序是按元素优先权(关键字)大小,而非元素进入队列的先后顺序。若采用数组或链表直接实现优......
  • 百度站长后台python推送工具
    需要在文件目录下面建一个urls.txt的文件,将所有要推送的url放到文本里。然后运行下面的脚本。importrequestsdefbaidu_push(url,token):headers={'......