高阶函数——sorted

本文对比了Python中的list.sort()和sorted()函数,详细阐述它们的不同点和相同点,并通过具体例子说明sorted()在处理嵌套字典和排序数组时的应用。同时,给出了2018年携程春招面试题,要求在原始数组上将所有0移动到末尾,不创建新数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

list.sort()和sorted()的对比

不同点:

list.sort()

li = [1,2,4,6,3]
li.sort()
print(li)
#sort()是在原有的内存空间内将原来的列表进行排列

在这里插入图片描述

sorted()

a = sorted(li)
print(a)
#sorted()是重新在一个新的内存空间中进行排序

在这里插入图片描述

相同点:

默认sort和sorted方法由小到大进行排序,reverse =True由大到小进行排序

a = sorted(li,reverse=True)
print(a)   

在这里插入图片描述

sorted中嵌套字典

d = {
    '003': {
        'name': 'apple1',
      
### Python 数据分析中高阶函数的应用 #### map 函数在数据分析中的应用 `map()` 是一个非常有用的高阶函数,它允许对可迭代对象中的每一个元素执行指定的操作并返回一个新的迭代器。这使得批量处理数据变得简单而直观。 ```python data = [1, 2, 3, 4] def square(x): return x ** 2 squared_data = list(map(square, data)) print(squared_data) # 输出:[1, 4, 9, 16] ``` 此代码片段展示了 `map()` 如何应用于一系列数值上以计算平方值[^2]。 #### filter 函数筛选特定条件的数据 当需要过滤掉不符合某些标准的数据点时,`filter()` 可以派上用场。该函数接收两个参数——一个是布尔表达式的判定逻辑,另一个是要被遍历的对象。 ```python numbers = range(-5, 5) positive_numbers = list(filter(lambda x: x > 0, numbers)) print(positive_numbers) # 输出:[1, 2, 3, 4] ``` 这段程序利用匿名 lambda 表达式配合 `filter()` 来获取正整数列表。 #### reduce 函数聚合数据集 对于那些希望累积或折叠整个序列成单一输出的情况来说,来自 `functools` 库里的 `reduce()` 就显得尤为重要了。需要注意的是,在使用前需先引入这个库下的方法。 ```python from functools import reduce product_of_list = reduce((lambda x, y: x * y), [1, 2, 3, 4]) print(product_of_list) # 输出:24 ``` 这里通过连续相乘的方式得到了给定数组内所有元素的成绩。 #### sorted 函数自定义排序规则 除了上述三个外,`sorted()` 同样属于高阶范畴之内;特别是当涉及到复杂结构(比如字典)或是想要实现多级排序的时候更为明显。借助于关键字参数 `key` ,可以灵活定制比较依据。 ```python students = [ {"name": "Alice", "grade": 88}, {"name": "Bob", "grade": 76}, {"name": "Charlie", "grade": 92} ] by_grade = sorted(students, key=lambda s: s['grade'], reverse=True) for student in by_grade: print(f"{student['name']}: {student['grade']}") # 输出: # Charlie: 92 # Alice: 88 # Bob: 76 ``` 以上例子按照成绩高低对学生进行了重新排列,并且指定了降序模式[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值