python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()

本文详细介绍了Python中sort()函数的使用,包括默认排序、自定义排序规则(如lambda函数),以及如何进行多重条件排序,如按长度或汉字拼音/笔画排序。同时推荐了cn_sort库处理中文排序的实例。
摘要由CSDN通过智能技术生成

学习目标:

  • lambda
  • len(list1)

  • sorted_numbers = sorted(numbers)
  • list.sort()

目录

学习目标:

学习内容:

匿名函数  lambda表达式

lambda [参数]: 函数

不需要return

len(list1)

sorted_numbers = sorted(numbers)

list.sort(key=None, reverse=False)

按照指定的函数排序----list.sort(key=函数)

sort() 函数的 key 参数可以接受一个函数,该函数用于指定排序的依据。这个函数会在排序过程中被调用,每次调用时传入列表中的一个元素作为参数,并返回一个用于排序的值。

def get_length(word):

return len(word)

words = ['apple', 'banana', 'orange', 'pear']

words.sort(key=get_length)

print(words) # 输出 ['pear', 'apple', 'banana', 'orange']

1. 按照默认方式排序

2. 按照指定的函数排序

学习时间:

学习产出:


学习内容:

  1. lambda
  2. len(list1)

  3. sorted_numbers = sorted(numbers)
  4. list.sort()

匿名函数  lambda表达式

lambda [参数]: 函数

不需要return

len(list1)

sorted_numbers = sorted(numbers)

list.sort(key=None, reverse=False)

按照指定的函数排序----list.sort(key=函数)

sort() 函数的 key 参数可以接受一个函数,该函数用于指定排序的依据。这个函数会在排序过程中被调用,每次调用时传入列表中的一个元素作为参数,并返回一个用于排序的值。

def get_length(word):

return len(word)

words = ['apple', 'banana', 'orange', 'pear']

words.sort(key=get_length)

print(words) # 输出 ['pear', 'apple', 'banana', 'orange']

my_list = [5, 2, 9, 1, 5]
my_list.sort()
print(my_list)
升序排列

降序排列
my_list = [5, 2, 9, 1, 5]
my_list.sort(reverse=True)
print(my_list)

1.自定义排序规则
sort()方法默认按升序排序,但有时你可能需要根据特定的规则进行排序。你可以使用key参数来指定一个函数,该函数将根据其返回的值来排序列表元素。例如,假设你有一个字符串列表,你想按字符串的长度进行排序
my_list = ["apple", "banana", "cherry", "date"]
my_list.sort(key=len)
print(my_list)

2.多重排序
有时候,你可能需要在不同的字段上进行多次排序。你可以通过多次调用sort()方法来实现这一点,或者使用sorted()函数的key参数来进行多重排序。例如,假设你有一个包含学生姓名、年龄和分数的列表,你想首先按分数降序排序,然后按姓名升序排序:
students = [("Alice", 25, 95), ("Bob", 30, 88), ("Alex", 25, 92), ("Eve", 22, 95)]
students = sorted(students, key=lambda x: (-x[2], x[0]))
print(students)
这将首先按分数降序排序,然后按姓名升序排序。
代码解释
对一个包含学生信息的列表进行排序。这段代码使用了Python的sorted()函数,并传递了一个自定义排序键(key)函数,这个函数使用lambda表达式定义。现在,让我详细解释每一部分的作用:
students 列表包含了元组,每个元组都有三个元素:姓名、年龄和分数。
sorted() 函数用于对 students 列表进行排序。排序的方式是使用 key 参数指定的函数来确定每个元素的排序键。
lambda x: (-x[2], x[0]) 是一个匿名函数,也称为 lambda 函数。它接受一个参数 x,这里 x 代表了列表中的每个元组(姓名、年龄和分数)。lambda 函数返回一个元组,其中包含两个值:第一个值是分数的负数(-x[2]),第二个值是姓名 x[0]。
排序过程首先按照分数降序排序,也就是按照 (-x[2]) 的值排序。这意味着分数高的学生会在前面。
[("Alice", 25, 95), ("Eve", 22, 95), ("Alex", 25, 92), ("Bob", 30, 88)]
如果两个学生有相同的分数,那么它们将按照姓名升序排序(x[0])。这是在排序相同分数的学生时的第二个排序条件。
[("Alice", 25, 95), ("Eve", 22, 95), ("Alex", 25, 92), ("Bob", 30, 88)]
最后,通过 print(students) 将排序后的 students 列表输出到控制台。
所以,输出结果就是按照分数降序排列,如果分数相同,则按照姓名升序排列的学生列表。这个示例演示了如何进行多重条件的排序,以满足不同排序标准。

三、再次进阶
或许有人问“假如我想按中文字的拼音排序,或者按姓名汉字的笔画多少排序,是否可以实现啊?”
是的,你可以实现按中文字的拼音或笔画排序。
1准备
要做到这一点,你需要使用Python的第三方库来进行中文排序。其中,cn_sort库可以帮助你实现这些需求。
首先,你需要安装名为'cn_sort'的Python库,它包含了用于按照中文词组的拼音和笔顺进行排序的功能。你可以使用pip来安装:
打开命令提示符
输入pip install cn_sort --upgrade

2按拼音排序
from cn_sort.process_cn_word import sort_text_list, Mode
names = ["张三", "李四", "王五", "赵六"]
# 使用 cn_sort 库对中文姓名按拼音进行排序
sorted_names = list(sort_text_list(names, mode=Mode.PINYIN))
print(sorted_names)

3按笔画排序
from cn_sort.process_cn_word
import sort_text_list, Modenames = ["张三", "李四", "王五", "赵六"]
# 使用 cn_sort 库对中文姓名按笔画进行排序
sorted_names = list(sort_text_list(names, mode=Mode.BIHUA))
print(sorted_names)

提示1:为了方便,你可以复制文中的完整代码并在你的代码编译器中运行。
提示2:请特别注意Python的代码缩进。因正确的缩进,对于代码的理解至关重要,所以请确保代码块正确缩进,以避免错误。

sort() 函数是 Python 中用于对列表进行排序的内置函数。它可以按照升序或降序对列表中的元素进行排序。sort() 函数会直接修改源列表,而不会返回一个新的排序后的列表。

sort() 函数的基本语法如下:

```

list.sort(key=None, reverse=False)

```

其中,key 和 reverse 都是可选参数。key 是一个用于排序的函数,reverse 是一个布尔值,用于指定是否按降序进行排序。

1. 按照默认方式排序

如果不提供任何参数,sort() 函数会按照默认方式对列表进行升序排序。默认排序是根据元素的大小进行排序,对于数字类型的元素,按照从小到大的顺序排序;对于字符串类型的元素,按照字母的顺序进行排序。

示例代码如下:

```python

numbers = [5, 2, 8, 1, 9]

numbers.sort()

print(numbers) # 输出 [1, 2, 5, 8, 9]

fruits = ['apple', 'banana', 'orange', 'pear']

fruits.sort()

print(fruits) # 输出 ['apple', 'banana', 'orange', 'pear']

```

2. 按照指定的函数排序

sort() 函数的 key 参数可以接受一个函数,该函数用于指定排序的依据。这个函数会在排序过程中被调用,每次调用时传入列表中的一个元素作为参数,并返回一个用于排序的值。

示例代码如下:

```python

def get_length(word):

return len(word)

words = ['apple', 'banana', 'orange', 'pear']

words.sort(key=get_length)

print(words) # 输出 ['pear', 'apple', 'banana', 'orange']

```

在这个例子中,我们定义了一个函数 get_length(),它返回一个单词的长度。然后我们使用这个函数作为 key 参数传递给 sort() 函数,这样列表中的元素会根据它们的长度进行排序。

3. 按照降序排序

如果想要按照降序排序,可以将 reverse 参数设置为 True。

示例代码如下:

```python

numbers = [5, 2, 8, 1, 9]

numbers.sort(reverse=True)

print(numbers) # 输出 [9, 8, 5, 2, 1]

```

在这个例子中,我们将 reverse 参数设置为 True,这样列表中的元素会按照从大到小的顺序进行排序。

需要注意的是,sort() 函数会直接修改源列表,而不会返回一个新的排序后的列表。如果想要获取一个新的排序后的列表,可以使用 sorted() 函数。

示例代码如下:

```python

numbers = [5, 2, 8, 1, 9]

sorted_numbers = sorted(numbers)

print(sorted_numbers) # 输出 [1, 2, 5, 8, 9]

print(numbers) # 输出 [5, 2, 8, 1, 9]

```

在这个例子中,我们使用 sorted() 函数对列表进行排序,并将排序后的结果赋值给 sorted_numbers。原列表 numbers 的顺序并没有改变。

总结一下,sort() 函数是 Python 中用于对列表进行排序的内置函数。它可以按照升序或降序对列表中的元素进行排序。sort() 函数会直接修改源列表,而不会返回一个新的排序后的列表。如果想要获取一个新的排序后的列表,可以使用 sorted() 函数。此外,sort() 函数还可以接受一个 key 参数,用于指定排序的依据。


学习时间:

学习时间为不运动的时候,作者咕咕了是去运动(无氧运动和有氧运动都做最好)了,请饶恕。


学习产出:

画工

python--2作业66,69,71,84;85;数据类型:int()float()TrueFalsestr()list()set()dict()tuple()class 

python--1作业,注释、输入输出、运算符、运算结果、三目运算符、关系表达、多值交换、偶数、随机数、三目运算、if、elif、else、while、for、break、contince、pass                                                                                                   http://t.csdnimg.cn/0KDeU


  计算机网络第1章:计算机网络的概念、组成与功能;计算机网络的分类、标准化工作及相关组织

                                                                                                       http://t.csdnimg.cn/uZOAM

计算机网络第一章:性能指标:带宽、时延、时延带宽积、RTT、吞吐量、速率、信道利用率

                                                                                                                                                                                                                           http://t.csdnimg.cn/avNeb

计算机网络体系结构——PDU、SDU、PCI、协议、访问、接口、SAP

                                                                                                          http://t.csdnimg.cn/x3Uar

 计算机网络分层结构——OSI/ISO、TCP/IP                                                                                                                                                   http://t.csdnimg.cn/hLrqY

 1章选择                                                                                          http://t.csdnimg.cn/cnmdJ

2章选择、解答                                                                                http://t.csdnimg.cn/ONrER

   通信基本概念:数据、信号、码元、信源、信道、信宿、速率、波特、带宽                                                                                                        http://t.csdnimg.cn/TKnyM

 数据、信号、码元、信源、信道、信宿、速率、波特、带宽-通信基本概念

                                                                                                         http://t.csdnimg.cn/Kc2e3

HCIA——30奈奎斯特定理、香农定理                                              http://t.csdnimg.cn/Yqtch

HCIA——20应用层:C/S、P2P、peer                                                                                                                                                                                       http://t.csdnimg.cn/4i4Og

HCIA——21C/S、P2P、peer的选择     

                                                                                                                                                                                                                          http://t.csdnimg.cn/4a11f                                                                

 DNS层次域名空间、域名服务器、域名解析的原理                        http://t.csdnimg.cn/yeWd6

 HCIA——23DNS层次域名空间、域名服务器、域名解析的原理的选择、解答                                                                                                                              http://t.csdnimg.cn/RXPNV 

 HCIA——24FTP 的工作原理、功能、TFTP、控制连接、数据连接

                                                                                                                                                                                                                    http://t.csdnimg.cn/9TPlw

HCIA——25FTP 的工作原理、功能、TFTP、控制连接、数据连接的选择、解答 

                                                                                                    http://t.csdnimg.cn/8GkAU

HCIA——26E-mall、MIME、POP3、IMAP、电子邮件系统的组成结构、电子邮件的发送,接收过程、MIME 与SMTP 的关系                                                  http://t.csdnimg.cn/smTaR

HCIA——27E-mall、MIME;POP3、IMAP的选择,解答 http://t.csdnimg.cn/xnsXP

 HCIIA——28HTTP、万维网、HTML;万维网的工作过程;HTTP 的特点——无连接-TCP、无状态-Cookie、非持久连接-非流水线和流水线;HTTP 的报文结构                                                                                                      http://t.csdnimg.cn/cRcxY

  • 技术笔记 1遍
  • 有错误请指出,作者会及时改正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值