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

学习目标:

  • 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 --upgrade2按拼音排序
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遍
  • 有错误请指出,作者会及时改正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ActiveMQ入门案例(queue模式和topic模式)

目录 前言:为什么使用消息中间件? 异步通信 缓冲 解耦 前提:安装并启动activemq 一、点对点(point to point, queue) 1.1 创建maven项目 1.2 Pom依赖 1.2 JmsProduce 消息生产者 1.3 JmsConsumer…

背 单 词 (考研词汇闪过)

单词: 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排(5min)重复一遍(2mi…

Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制

Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制 Zheng Zhang  Wenbo Hu†  Yixing Lao   老宜兴市郑张文博胡 † Tong He  Hengshuang Zhao† 赵同和恒双 †1122113311 …

BTS441RGATMA1 N沟道 43V 17A高侧电源开关芯片 英飞凌

BTS441RGATMA1是一款由Infineon Technologies制造的高侧开关电源芯片。 直 接 联 系 客 服 价 格 比 商 城 下 单 更 便 宜 BTS441RGATMA1具有以下功能: 高端电源开关:BTS441RGATMA1是一种N通道功率场效应晶体管(FET)&#xff…

图像处理与视觉感知---期末复习重点(7)

文章目录 一、图像压缩1.1 三种冗余1.2 模型1.3 信息测量 二、无误差压缩2.1 哈夫曼编码2.1.1 步骤2.1.2 例题 2.2 算术编码 三、变换编码 一、图像压缩 1.1 三种冗余 1. 三种基本的是数据冗余为:编码冗余、像素间冗余、心理视觉冗余。 2. 编码冗余:如果…

⭐Unity 里调用弹出电脑系统文件选择窗 (选择图片/文件)

今天遇到的需求要从Uinty里调用选择程序外的图片,类似手机环境下拿图库的照片一样。 效果如下: 话不多说 直接上代码! 1.编辑器模式下 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using Syst…

vue中预览docx、xlsx、pptx、pdf

前言:其实本来是要做全类型文件预览的,但是一直找不到合适的doc,xlx,ppt预览插件。要是有可以使用的,可以评论推荐给我 我使用的node版本:v18.19.1 参考官网:preview 文件预览 | ran 引入方式: //安装组…

瀑布流布局

瀑布流布局:瀑布流,又称瀑布流式布局,是比较流行的一种页面布局,视觉表现为参差不齐的多栏布局。 问题概述: 一次性生成,不需要再次增加,排序顺序由上倒下,由左到右 解决方案: //…

最优算法100例之41-用两个栈实现队列

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 用两个栈实现队列 题解报告 stack<int> stack1; stack<int> stack2; void push(int node) {stack1.push(node);…

2024-4-11-arm作业

汇编实现三个灯的闪烁 源代码&#xff1a; .text .global _start _start: 时钟使能LDR r0,0x50000A28ldr r1,[r0]orr r1,r1,#(0x1<<4)str r1,[r0]设置PE10输出LDR r0,0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1,#(0x1<<20)str r1,[r0]设置PE1…

OpenResty,Nginx实现接口验签与黑名单控制

介绍 nginx与openresty是两种优秀知名的7层负载均衡软件&#xff0c;nginx以其出色的性能和稳定性成为首选&#xff0c;而openresty则是在Nginx基础上构建的&#xff0c;支持嵌入Lua语言&#xff0c;大幅提升了开发效率。 安装OpenResty 版本 openresty-1.25.3.1-win64下载地…

mybatis的一对多

业务&#xff1a;通常主表从表 查询&#xff0c;一对多关系&#xff0c;通常是先查主表&#xff0c;然后拿主表的 关联字段与从表关联。在代码中 通常用for 循环等方法给 从表的数据赋值&#xff0c;很麻烦&#xff0c;&#xff0c;&#xff0c;很麻烦。。。。 用mybatis的…

一个PDF文件含有多篇不同的内容,如何把这些内容分离出来?

一&#xff0c;PDF的含义 PDF&#xff0c;全称Portable Document Format&#xff0c;即便携式文档格式&#xff0c;是一种由Adobe Systems开发的文件格式&#xff0c;用于呈现文档&#xff0c;包括文本、图像、向量图形、字体、颜色、页面布局等&#xff0c;并可在不同的操作系…

FPGA在医疗的应用,以4K医疗内窥镜为例

前言 随着技术的发展&#xff0c;医学影像作为科学技术的主要成就之一&#xff0c;在无创诊断和治疗领域已经有了多种应用。其中一个应用是内窥镜&#xff0c;在20世纪90年代&#xff0c;当利用电荷耦合装置将图像传输到显示器上成为可能时&#xff0c;内窥镜变得更加广泛。为…

怎么做预约小程序_探索我们的全新预约小程序

在繁忙的现代生活中&#xff0c;无论是想预约一次美容护理&#xff0c;还是预定一家心仪的餐厅&#xff0c;亦或是安排一次专业的咨询服务&#xff0c;我们都希望能够在最短的时间内完成这些操作&#xff0c;节省时间和精力。如今&#xff0c;一款全新的预约小程序应运而生&…

C语言——实践小游戏(贪吃蛇)代码版

大家好久不见&#xff0c;我是残念我回来了&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#x…

从 Oracle 到 MySQL 数据库的迁移之旅

文章目录 引言一、前期准备工作1.搭建新的MySQL数据库2 .建立相应的数据表2.1 数据库兼容性分析2.1.1 字段类型兼容性分析2.1.2 函数兼容性分析2.1.3 是否使用存储过程&#xff1f;存储过程的个数&#xff1f;复杂度&#xff1f;2.1.4 是否使用触发器&#xff1f;个数&#xff…

Paper Reading: MixTeacher:半监督目标检测中利用混合尺度教师挖掘有前景的标签

目录 简介目标/动机工作重点方法训练 实验总结 简介 题目&#xff1a;《MixTeacher: Mining Promising Labels with Mixed Scale Teacher for Semi-Supervised Object Detection》&#xff0c; CVPR 2023 日期&#xff1a;2023.3.16 单位&#xff1a;腾讯&#xff0c;上海交…

竞赛 图像识别-人脸识别与疲劳检测 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是…

Android MVVM架构学习——ViewModel DataBinding

关于MVVM架构&#xff0c;我并不想花篇幅去做重复性的描述&#xff0c;网上一搜都是一堆讲解&#xff0c;大家可以自行了解&#xff0c;我所做的只是以最简单的例子&#xff0c;最有效的步骤&#xff0c;从零开始&#xff0c;去实现一个相对有点学习参考价值的项目。 先来看本…