Python中排序函数sorted()函数的使用实例

 更新时间:2022年11月23日 09:47:32   作者:刘经纬老师  
sorted()作为Python内置函数之一,其功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序,下面这篇文章主要给大家介绍了关于Python中排序函数sorted()函数的相关资料,需要的朋友可以参考下

选择题

以下python代码输出什么?

a = [2,3,1]
sorted(a)
print(a)

A a
B [3, 2, 1]
C [2, 3, 1]
D [1, 2, 3]

问题解析

1.sorted()函数可以对所有可迭代的对象进行排序操作。题目中,sorted()函数提供了一个新的有序的输出结果,并且不改变原始值的顺序。所以使用print()语句输出列表a,结果仍是原来a的排序。

2.sorted()函数是一个内置函数,可以直接使用。sorted()语法(应用于Python 3.x):

sorted(iterable,key=None, reverse=False)

其中参数说明:

  • iterable:可迭代对象
  • key:通过这个参数可以自定义排序逻辑
  • reverse:指定排序规则,True为降序,False为升序(默认)。

3.sorted()函数返回重新排序的列表,与sort()函数的区别在于sort()函数是list列表中的函数,而sorted()函数可以对所有可迭代对象进行排序操作。并且用sort()函数对列表排序时会影响列表本身,而sorted()函数则不会。

4.需要注意的是,sorted()函数虽然可以处理所有可迭代的对象,例如集合、元组、数组,但是输出结果仍然是一个列表。所以如果返回的对象需要匹配输入类型,那么需要将转化为新类型。

答案

正确答案是:C

代码及运行结果:

附:sorted函数超详细用法

例1. sort()函数中的两种情况:按照数值排序以及按照绝对值大小排序

list1=[3,-4,2,4]
print(sorted(list1))  # 输出[-4, 2, 3, 4]
print(sorted(list1,key=lambda x:(abs(x),x),reverse=True)) # 输出[4, -4, 3, 2]
 
print(list1)          # 输出[3, -4, 2, 4]

注意:sorted(list1)返回了一个新列表,不改变原先列表list1的值

如果需要直接在原先列表上改变,则需额外赋值: list1=sorted(list1)

例2.  二维列表按照第二个元素升序排序(按照动物重量排序,其中1t=1000kg)

原始列表:s=[['北极熊', '0.75t'] , ['企鹅', '35kg'] ,  ['海豹', '1.35t']]

需要返回的排序后的列表:[['企鹅', '35kg'], ['北极熊', '0.75t'], ['海豹', '1.35t']]

s=[['北极熊', '0.75t'] , ['企鹅', '35kg'] ,  ['海豹', '1.35t']]
# 法一:使用sorted(list,key=...)
s1=sorted(s,key=lambda x:float(x[1][:-1]) * 1000 if x[1][-1] == 't' else float(x[1][:-2]))
print(s1)
 
# 法二:使用list.sort(key=...)
s.sort(key=lambda x:float(x[1][:-1]) * 1000 if x[1][-1] == 't' else float(x[1][:-2]))
print(s)

解释:

x[1]指二维列表中每个一维列表中index=1的元素(第二个元素)

如果x[1][-1]=='t',则重量x[1][:-1]需要*1000,转化为kg;

否则直接取kg前面的数字x[1][:-2]

总结

到此这篇关于Python中排序函数sorted()函数使用的文章就介绍到这了,更多相关Python排序函数sorted()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python异常 ValueError的问题

    Python异常 ValueError的问题

    这篇文章主要介绍了Python异常 ValueError的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python实现TCP探测目标服务路由轨迹的原理与方法详解

    Python实现TCP探测目标服务路由轨迹的原理与方法详解

    这篇文章主要介绍了Python实现TCP探测目标服务路由轨迹的原理与方法,结合实例形式分析了Python TCP探测目标服务路由轨迹的原理、实现方法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • 在Python中使用Protocol Buffers的详细介绍

    在Python中使用Protocol Buffers的详细介绍

    本文详细介绍了协议缓冲区(Protocol Buffers)在Python中的应用,包括其定义、序列化和解析过程,协议缓冲区是一种灵活且高效的自动化解决方案,本文包括了如何将地址簿应用程序的个人详细信息写入文件的示例代码,并提供了相应的下载和安装指导,感兴趣的朋友一起看看吧
    2024-10-10
  • python实现微秒级等待问题(windows)

    python实现微秒级等待问题(windows)

    这篇文章主要介绍了python实现微秒级等待问题(windows),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 解决python3中自定义wsgi函数,make_server函数报错的问题

    解决python3中自定义wsgi函数,make_server函数报错的问题

    下面小编就为大家分享一篇解决python3中自定义wsgi函数,make_server函数报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • python3实现网络爬虫之BeautifulSoup使用详解

    python3实现网络爬虫之BeautifulSoup使用详解

    这篇文章主要介绍了python3实现网络爬虫之BeautifulSoup使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Python绘制股票移动均线的实例

    Python绘制股票移动均线的实例

    今天小编就为大家分享一篇Python绘制股票移动均线的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python3实现的简单工资管理系统示例

    Python3实现的简单工资管理系统示例

    这篇文章主要介绍了Python3实现的简单工资管理系统,涉及Python文件读写、数据遍历、判断等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • python OpenCV学习笔记

    python OpenCV学习笔记

    这篇文章主要介绍了python OpenCV的相关资料,帮助大家更好的理解和学习使用python的opencv,感兴趣的朋友可以了解下
    2021-03-03
  • python操作MySQL数据库的方法分享

    python操作MySQL数据库的方法分享

    坚持每天学一点,每天积累一点点,作为自己每天的业余收获,这个文章是我在吃饭的期间写的,利用自己零散的时间学了一下python操作MYSQL,所以整理一下
    2012-05-05

最新评论