python利用小列表中元素排序对整个大列表中的小列表进行排序
一、了解sorted()
函数
sorted()
函数是Python内置的用于排序可迭代对象的函数,它可以接受多个参数来进行灵活的排序操作。下面是对sorted()
函数的参数要求和使用方法的详细说明:
-
参数列表:
iterable
(必需):表示要进行排序的可迭代对象,例如列表、元组、集合等。key
(可选):指定一个函数,该函数将应用于每个元素,用于生成排序的依据。默认为None
,此时使用元素本身作为排序依据。reverse
(可选):表示是否按照降序进行排序。默认为False
,即升序排序。
-
返回值:
sorted()
函数的返回值是一个新的已排序的列表。 -
使用方式:
- 最简单的用法是只传入待排序的可迭代对象,例如
sorted(iterable)
,此时会按照元素的默认顺序进行排序。 - 如果需要按照特定的条件进行排序,可以使用
key
参数来指定一个函数,该函数接受一个元素作为参数,并返回用于排序的依据。例如sorted(iterable, key=lambda x: x[0])
表示按照元素的第一个元素进行排序。 - 如果需要按照降序进行排序,可以将
reverse
参数设置为True
,例如sorted(iterable, reverse=True)
表示按照降序排序。
- 最简单的用法是只传入待排序的可迭代对象,例如
需要注意的是,sorted()
函数并不会改变原始的可迭代对象,而是返回一个新的已排序的列表。如果需要对原始可迭代对象进行排序,可以使用 list.sort()
方法。
二、应用实例
1 2 3 4 | Big = [[ 27852 , 263 , 0.1 ], [ 278554 , 253 , 0.1 ], [ 27857 , 283 , 0.3 ], [ 27855 , 273 , 0.2 ]] # 根据小列表的第三个元素进行排序 sorted_big = sorted (Big, key = lambda x: x[ 2 ],reverse = True ) |
以上代码是假设存在一个名为Big的列表,代码通过lambda函数以大列表中每个小列表的第3个元素作为排序的依据,从大到小对Big进行排序。
首先,lambda函数 lambda x: x[2]
表示一个匿名函数,它接受一个参数x,并返回x的第三个元素值x[2]作为排序依据。
然后,sorted()
函数被调用,传入两个参数:要排序的列表 Big和排序的依据 key=lambda x: x[2]
。key
参数指定了排序的依据,在这里是列表中每个元素的第三个元素。
最后,reverse=True
参数用来指定排序顺序为从大到小,如果不指定,默认排序顺序为从小到大。
排序后的结果将被存储在一个名为sorted_big的新列表中。
三、扩展——多级列表
1 2 3 4 5 6 | Big = [[ 27852 , 263 , 0.1 ,[ 3 , 2 , 1 ]], [ 278554 , 253 , 0.1 ,[ 0 , 5 , 2 ]], [ 27857 , 283 , 0.3 ,[ 1 , 1 , 0 ]], [ 27855 , 273 , 0.2 ,[ 7 , 8 , 9 ]]] # 根据子列表的第四个元素(孙列表)的第三位,从大到小,对Big列表进行排序 sorted_big = sorted (Big, key = lambda x: x[ 3 ][ 2 ], reverse = True ) print (sorted_big) |
依托lambda表达式,深入访问列表,确定key值,进行列表排序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现