首页 > 编程语言 >Python基础之sorted()函数用法

Python基础之sorted()函数用法

时间:2023-03-22 22:26:23浏览次数:42  
标签:lst2 lst1 Python 用法 key print sorted 排序

1、简单的排序

sorted函数可以对可迭代类型的容器内的数据进行排序

lst1 = (5,4,3,2,1)
lst2 = ('F','D','Y','e','a','v')#字符串类型的排序按照ASCII的大小进行比较
L1 = sorted(lst1)
L2 = sorted(lst2)
print(L1)
print(L2)
>>>[1, 2, 3, 4, 5]
['D', 'F', 'Y', 'a', 'e', 'v']

2、进阶使用

sorted(L,key=···)
其中key用来接收一个自定义的排序规则

lst1 = (5,4,3,-2,1)
lst2 = ('F','D','Y','e','a','v')#字符串类型的排序按照ASCII的大小进行比较
L1 = sorted(lst1)
L2 = sorted(lst2)
L3 = sorted(lst1,key=abs)
L4 = sorted(lst2,key=str.lower)
print(L1)
print(L2)
print(L3)
print(L4)
>>>[-2, 1, 3, 4, 5]
['D', 'F', 'Y', 'a', 'e', 'v']
[1, -2, 3, 4, 5]
['a', 'D', 'e', 'F', 'v', 'Y']

3、选择升序还是降序排列方式

其中sorted函数是默认升序排序,当需要降序排序时,需要使用reverse = True

lst1 = (5,4,3,-2,1)
lst2 = ('F','D','Y','e','a','v')#字符串类型的排序按照ASCII的大小进行比较
L1 = sorted(lst1)
L2 = sorted(lst2)
L3 = sorted(lst1,key=abs)
L4 = sorted(lst2,key=str.lower)
L5 = sorted(lst1,reverse=True)
print(L1)
print(L2)
print(L3)
print(L4)
print(L5)
>>>[-2, 1, 3, 4, 5]
['D', 'F', 'Y', 'a', 'e', 'v']
[1, -2, 3, 4, 5]
['a', 'D', 'e', 'F', 'v', 'Y']
[5, 4, 3, 1, -2]

4、多级排序

operator模块提供的itemgetter函数用于获取对象的哪些维的数据

from operator import itemgetter
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
#按名字排序
L2=sorted(L,key=itemgetter(0))
#按成绩排序
L3=sorted(L,key=itemgetter(1))
print("按名字排序: ")
print(L2)
print("按成绩排序: ")
print(L3)
>>>按名字排序: 
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
按成绩排序: 
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]

如果在输出列表时不想输出中括号,引号和逗号。可以在输出时在变量前加一个’*'即可

lst1 = (5,4,3,-2,1)
lst2 = ('F','D','Y','e','a','v')#字符串类型的排序按照ASCII的大小进行比较
L1 = sorted(lst1)
L2 = sorted(lst2)
L3 = sorted(lst1,key=abs)
L4 = sorted(lst2,key=str.lower)
L5 = sorted(lst1,reverse=True)
print(*L1)
print(*L2)
print(*L3)
print(*L4)
print(*L5)
>>>-2 1 3 4 5
D F Y a e v
1 -2 3 4 5
a D e F v Y
5 4 3 1 -2

 

参考网址:https://blog.csdn.net/chaojishuike/article/details/124049419

标签:lst2,lst1,Python,用法,key,print,sorted,排序
From: https://www.cnblogs.com/Vincent-yuan/p/17245690.html

相关文章

  • python if
    '''if判断语句'''age=18;age2=10;ifage>=18:print("成年人")'''if判断语句'''age=input("请输入你的年纪");ifint(age)<=18:print(f"你{age}......
  • 【Python】批量提取Fibersim xml文件中的节点网格数据
    程序功能:输入需求:fibersim导出的ply的xml文件,可以很多个也没问题。但名字要有规律,不然没法循环读写。比如我自己用的就是x1.xml、x2.xml、Y1.xml......的文件名定义......
  • 深入理解 Python 虚拟机:字典(dict)的实现原理及源码剖析
    深入理解Python虚拟机:字典(dict)的实现原理及源码剖析在本篇文章当中主要给大家深入介绍一下在cpython当中字典的实现原理,在本篇文章当中主要介绍在早期python3当中的......
  • python 中实现文件的复制
     001、(base)[root@PC1test3]#ls##测试数据及脚本a.txttest.py(base)[root@PC1test3]#cattest.py##复制程序importosos.popen('......
  • python中的pickle库
    1.1持久化模块pickle模块是Python专用的持久化模块,所谓的持久化就是让数据持久化保存,可以持久化包括自定义类在内的各种数据,比较适合Python本身复杂数据的存储。但是持久......
  • python表格处理--1
    importnumpyasnp#a=np.array([1,2,4,5])#创建一组数组#b=np.array([[1,2],[3,4],[5,6]])#创建二维数组#x=np.arange(5)#1个参数,起点取......
  • Python中事件驱动
    提示:如果要回顾视频,直接从第8分钟开始看事件驱动可以说是一个概念,还是用一个官方的语言来讲解一下吧事件驱动专业的解释是指在持续事务管理中,进行决策的一......
  • Python 面向对象
    Python面向对象目录Python面向对象1编程范式介绍1.1面向过程编程(ProceduralProgramming)1.2面向对象编程2面向对象编程(Object-OrientedProgramming)2.1Class......
  • Python 四大主流 Web 编程框架
    目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及......
  • Python3 RabbitMQ
    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循MozillaPublicLicense开源协议。MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序......