浅谈sorted内联函数

help(sorted)

 

iterable:可以为list类型也可以为dict类型的迭代

cmp:排序比较算法

key:选择特定的某一域来进行排序

reverseTrue为下降排序,False为上升排序

1、list类型排序


对名字进行排序:


根据数字进行排序:


2、dict类型排序

dict类型排序和list类型的不同点在于dict类型的key是从索引为1开始记录的。

根据名字进行排序,若是list则索引选择零,但是dict类型,则选择1,且需要调用dict的迭代函数。

根据数字进行排序


### **问题解答:`sort` 函数和 `sorted` 函数的区别** 在 Python 中,`sort` 和 `sorted` 都用于对数据进行排序,但它们的使用场景和行为有所不同。 --- #### **1. `list.sort()` 方法** - `list.sort()` 是列表对象的一个方法,用于**原地排序**(in-place sorting),即直接修改原始列表。 - 它不会返回任何值(返回 `None`),因此不能将结果赋值给其他变量。 - 仅适用于列表类型的数据结构。 ##### 示例代码: ```python # 使用 list.sort() 方法 numbers = [5, 2, 9, 1, 5, 6] numbers.sort() print("排序后的列表:", numbers) ``` **输出:** ``` 排序后的列表: [1, 2, 5, 5, 6, 9] ``` **解释:** - 调用 `numbers.sort()` 后,原始列表 `numbers` 被修改为升序排列。 - 原始列表被直接改变,没有生成新的列表。 --- #### **2. `sorted()` 函数** - `sorted()` 是一个内置函数,可以对任何可迭代对象(如列表、元组、字典等)进行排序。 - 它会**返回一个新的排序后的列表**,而不会修改原始数据。 - 支持更多的可迭代对象,不仅仅局限于列表。 ##### 示例代码: ```python # 使用 sorted() 函数 numbers = [5, 2, 9, 1, 5, 6] sorted_numbers = sorted(numbers) print("原始列表:", numbers) print("排序后的新列表:", sorted_numbers) ``` **输出:** ``` 原始列表: [5, 2, 9, 1, 5, 6] 排序后的新列表: [1, 2, 5, 5, 6, 9] ``` **解释:** - 调用 `sorted(numbers)` 后,返回了一个新的排序后的列表 `sorted_numbers`。 - 原始列表 `numbers` 没有被修改。 --- #### **3. 参数说明** 无论是 `list.sort()` 还是 `sorted()`,都可以接受两个可选参数: - `key`: 用于指定一个函数,该函数会对每个元素进行处理并返回用于比较的值。 - `reverse`: 用于指定排序顺序,默认为 `False`(升序),设置为 `True` 时为降序。 ##### 示例代码: ```python # 使用 key 参数和 reverse 参数 words = ['apple', 'banana', 'cherry', 'date'] # 按字符串长度升序排序 sorted_words_length_asc = sorted(words, key=len) print("按长度升序排序:", sorted_words_length_asc) # 按字符串长度降序排序 sorted_words_length_desc = sorted(words, key=len, reverse=True) print("按长度降序排序:", sorted_words_length_desc) ``` **输出:** ``` 按长度升序排序: ['date', 'apple', 'banana', 'cherry'] 按长度降序排序: ['banana', 'cherry', 'apple', 'date'] ``` **解释:** - `key=len` 表示按照字符串的长度进行排序。 - `reverse=True` 表示降序排序。 --- #### **4. 总结对比** | 特性 | `list.sort()` | `sorted()` | |-------------------|----------------------------------|----------------------------------| | 返回值 | `None` | 新的排序后的列表 | | 修改原始数据 | 是(原地排序) | 否 | | 可用范围 | 仅适用于列表 | 适用于任何可迭代对象 | --- ### **相关问题**
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值