Python sorted() 函数详解与排序实例:升序、降序及自定义排序
本文深入解析Python内置sorted()函数的使用方法,对比其与list.sort()的区别,详细讲解iterable、key及reverse参数的应用。通过数值排序、绝对值排序及二维列表按特定规则排序的实例,展示如何灵活处理复杂数据结构,帮助开发者掌握高效排序技巧。
选择题
以下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()是Python的内置函数,可直接调用。其语法结构(适用于Python 3.x版本)如下:
sorted(iterable, key=None, reverse=False)
各参数具体说明如下:
- iterable:表示可迭代的对象。
- key:通过指定此参数,可以定义自定义的排序逻辑。
- reverse:用于指定排序规则,设置为True表示降序,设置为False表示升序(这是默认值)。
3. sorted()函数会返回一个经过重新排序的列表。它与sort()函数的主要区别在于:sort()是列表对象的方法,而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]指代二维列表中每个一维列表索引为1的元素(即第二个元素)。
如果x[1][-1]等于't',则重量部分x[1][:-1]需乘以1000,转换为kg单位;
否则直接提取kg前面的数字x[1][:-2]。
总结
至此,关于Python中排序函数sorted()的使用介绍完毕。如需了解更多Python排序函数sorted()的相关内容,请搜索本站历史文章或继续浏览后续文章。感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









