Python的内置函数 - min()

知识点1

在 Python 中,min() 和 max() 是两个非常实用的内置函数,分别用于找出可迭代对象中的最小值和最大值。

基本语法

min(iterable, *[, key, default])
min(arg1, arg2, *args, *[, key])
  • iterable:可迭代对象,如列表list、元组tuple、字典dict、集合set等。

  • arg1, arg2, *args:多个参数,直接传入多个值进行比较。

  • key:可选参数,用于指定一个函数,该函数会在比较之前对每个元素进行处理。默认为 None,即直接比较元素本身。

  • default:可选参数,仅当 iterable 为空时返回默认值。如果未指定且 iterable为空,则会抛出 ValueError。

案例1

min() 函数在处理列表时,会逐个比较元素,找出最小值并返回。在代码中,列表 num中的最小值是1,因此输出结果为1。

案例2

min() 函数可以直接接收多个参数,并逐个比较这些参数,找出最小值并返回。在代码中,这些参数中的最小值是 1,因此输出结果为 1

案例3

解释
  1. min() 函数的作用
    • min() 函数不仅可以从单个可迭代对象(如列表、元组等)中找出最小值,还可以直接比较多个可迭代对象,找出其中的“最小”对象。

  2. 参数传递
    • 在这个例子中,min() 函数接收了三个参数,每个参数都是一个列表:

      • [1, 2, 3]

      • [4, 5, 6]

      • [7, 8, 9]

  3. 比较过程
    • 当比较多个列表时,min() 函数会从左到右逐个比较这些列表的元素,直到找到不同的元素为止。

    • 具体比较过程如下:

      • 比较第一个元素:

        • [1, 2, 3] 的第一个元素是1

        • [4, 5, 6]的第一个元素是4

        • [7, 8, 9] 的第一个元素是7

        • 因为1 < 4 < 7,所以 [1, 2, 3] 是最小的列表。

      • 由于第一个元素已经决定了结果,后续元素不再需要比较。

  4. 输出结果
    • min([1, 2, 3], [4, 5, 6], [7, 8, 9]) 返回这些列表中的“最小”列表 [1, 2, 3],因此输出结果为 [1, 2, 3]。

案例4

代码1
print(min([2, 1, 3], [1, 2, 3], [3, 2, 1]))  # 输出结果:[1, 2, 3]
解释1
  1. min() 函数的作用
    • min() 函数用于从多个可迭代对象(如列表、元组等)中找出“最小”的对象。

  2. 参数传递
    • 在这个例子中,min()函数接收了三个参数,每个参数都是一个列表:

      • [2, 1, 3]

      • [1, 2, 3]

      • [3, 2, 1]

  3. 比较过程
    • 当比较多个列表时,min() 函数会从左到右逐个比较这些列表的元素,直到找到不同的元素为止。

    • 具体比较过程如下:

      • 比较第一个元素:

        • [2, 1, 3] 的第一个元素是2

        • [1, 2, 3] 的第一个元素是 1

        • [3, 2, 1] 的第一个元素是 3

        • 因为1 < 2 < 3,所以 [1, 2, 3] 是最小的列表。

      • 由于第一个元素已经决定了结果,后续元素不再需要比较。

  4. 输出结果
    • min([2, 1, 3], [1, 2, 3], [3, 2, 1]) 返回这些列表中的“最小”列表 [1, 2, 3],因此输出结果为 [1, 2, 3]。

代码2
print(min([2, 1, 3], [1, 2, 3], [3, 2, 1], key=len))  # 输出结果:[2, 1, 3]
解释2
  1. key 参数的作用
    • key 参数用于指定一个函数,该函数会在比较之前对每个元素进行处理。

    • 在这个例子中,key=len 表示比较这些列表的长度。

  2. 参数传递
    • min() 函数接收了三个参数,每个参数都是一个列表:

      • [2, 1, 3]

      • [1, 2, 3]

      • [3, 2, 1]

  3. 比较过程
    • 使用 key=len,比较这些列表的长度:

      • [2, 1, 3] 的长度是3

      • [1, 2, 3] 的长度是3

      • [3, 2, 1] 的长度是3

    • 因为所有列表的长度都相同,所以min() 函数会返回第一个列表。

  4. 输出结果
    • min([2, 1, 3], [1, 2, 3], [3, 2, 1], key=len) 返回这些列表中的第一个列表[2, 1, 3],因此输出结果为[2, 1, 3]。

总结

  • 在没有指定 key 参数时,min() 函数会从左到右逐个比较列表的元素,直到找到不同的元素为止。

  • 在指定 key 参数时,min() 函数会先对每个列表应用 key 函数,然后比较结果,如果结果相同,则返回第一个列表。

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

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

相关文章

【企业微信自建应用-前端篇】企业微信自建应用开发流程详细介绍

前言 最近接到需求&#xff0c;需要我在企业微信端自建一个应用&#xff0c;用来接受PC端派发的工单&#xff0c;告警&#xff0c;公告等内容。 这里写一个帖子汇总一下我经历的全流程开发&#xff0c;当然这是基础的流程啊。因为功能要求也不高。后面如果开发更多的东西再补充…

从毛坯房到梦想智家一步到位?三问赵瑞海读懂“曲美整家”

一年之计在于春&#xff0c;阳春三月&#xff0c;万物复苏&#xff01;在这充满生机的时节&#xff0c;众多家居企业也争先创新、变革&#xff01;走过32个春秋的知名家居品牌曲美家居也再一次破局、创变&#xff01;3月15日&#xff0c;“曲美家居 整家焕新发布会”在曲美家居…

【IDEA中配置Maven国内镜像源】

1. 为什么需要配置国内镜像源&#xff1f; 首先&#xff0c;Maven本身的工作原理是通过从仓库中下载依赖包。而这些依赖通常来自于 Maven中央仓库&#xff08;位于国外&#xff09;&#xff0c;由于网络原因&#xff0c;我们在国内访问这些远程仓库的速度比较慢&#xff0c;甚至…

蓝桥杯嵌入式赛道复习笔记4(TIM输出PWM,TIM输入捕获)

原理介绍 高级定时器 PWM计算 假如要得到输出频率为1000HZ 输入捕获的计算 实战练习 cubeMX的配置 TIM2的配置 TIM17的配置 同时输入捕获模式要开启中断模式 将NVIC Setting中的中段配置为enable 代码展示 main.c 中断配置

Linux驱动开发进阶 - 文件系统

文章目录 1、前言2、学习目标3、VFS虚拟文件系统3.1、超级块&#xff08;Super Block&#xff09;3.2、dentry3.3、inode3.4、file 4、文件系统的挂载5、文件系统的注册5.1、文件系统的注册过程5.1.2、定义文件系统类型5.1.3、注册文件系统5.1.4、注销文件系统 5.2、文件系统的…

WEB攻防-PHP反序列化-字符串逃逸

目录 前置知识 字符串逃逸-减少 字符串逃逸-增多 前置知识 1.PHP 在反序列化时&#xff0c;语法是以 ; 作为字段的分隔&#xff0c;以 } 作为结尾&#xff0c;在结束符}之后的任何内容不会影响反序列化的后的结果 class people{ public $namelili; public $age20; } var_du…

蓝桥杯真题——洛谷Day13 找规律(修建灌木)、字符串(乘法表)、队列(球票)

目录 找规律 P8781 [蓝桥杯 2022 省 B] 修剪灌木 字符串 P8723 [蓝桥杯 2020 省 AB3] 乘法表 队列 P8641 [蓝桥杯 2016 国 C] 赢球票 找规律 P8781 [蓝桥杯 2022 省 B] 修剪灌木 思路&#xff1a;对某个特定的点来说有向前和向后的情况&#xff0c;即有向前再返回到该位置…

C语言内存函数

一、memcpy使用和模拟实现 函数原型: void * memcpy ( void * destination, const void * source, size_t num ); dest指向目标内存区域的指针&#xff0c;即数据要复制的地方。sour指向内存区域的指针&#xff0c;即数据要复制的地方。num要复制的字节数。 memcpy函数会将s…

Springboot项目打包成war包

1、首先创建一个springboot工程&#xff0c;然后我们改造启动类如&#xff1a; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuil…

【大模型基础_毛玉仁】3.3 思维链

目录 3.3 思维链3.3.1 思维链提示的定义3.3.2 按部就班1&#xff09;Zero-Shot CoT2&#xff09;Auto-CoT 3.3.3 三思后行1&#xff09;思维树&#xff08;Tree of Thoughts, ToT&#xff09;2&#xff09;思维图&#xff08;Graph of Thoughts, GoT&#xff09; 3.3.4 集思广益…

虚拟电商-延迟任务系统的微服务改造(二)

一、微服务注册中心Consul 编写完延迟任务系统的web层接口&#xff0c;也就是说可以基于http协议来访问延迟系统&#xff0c;接下来要将延迟任务改造成一个服务。首要考虑的问题就是服务的注册与发现&#xff0c;服务的注册与发现都离不开服务的注册中心&#xff0c;本项目选取…

场景题:如何设计一个抢红包随机算法

面试官&#xff1a;咱来写个算法题吧 设计一个抢红包的随机算法&#xff0c;比如一个人在群里发了100块钱的红包&#xff0c;群里有10个人一起来抢红包&#xff0c;每人抢到的金额随机分配。 1.所有人抢到的金额之和要等于红包金额&#xff0c;不能多也不能少。 2.每个人至少抢…

Java开发经验——Throwable/Exception异常处理方式

摘要 文章主要探讨了 Java 开发中 Throwable 和 Exception 的异常处理方式。阿里巴巴 Java 开发手册规定&#xff0c;RPC 调用、二方包、动态代理类等场景推荐使用 Throwable&#xff0c;因为这些场景可能会出现类似 NoClassDefFoundError 这样的严重错误&#xff0c;使用 Thr…

[Mysql]创建数据库基础

数据库意义 更加利于管理的东西-数据库&#xff0c;他能有效的管理数据 举例一个生活化的案例说明 如果说&#xff0c;图书馆是保存书籍的&#xff0c;那么数据库技术保存数据的 数据库的简单原理图 Mysql数据库三层结构与本质 数据库管理系统与 mysqld&#xff1a;MySQL 数…

AMBA-CHI协议详解(二十五)

AMBA-CHI协议详解&#xff08;一&#xff09;- Introduction AMBA-CHI协议详解&#xff08;二&#xff09;- Channel fields / Read transactions AMBA-CHI协议详解&#xff08;三&#xff09;- Write transactions AMBA-CHI协议详解&#xff08;四&#xff09;- Other transac…

【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?

RabbitMQ基于AMQP协议实现&#xff0c;由多个核心组件组成&#xff0c;确保消息的可靠传递。 Rabbit的架构图&#xff1a; 1.RabbitMQ的基本架构&#xff1a; 1.核心组件&#xff1a; 1.Producer(生产者)&#xff1a; 发送消息到RabbitMQ。 2.Exchange(交换机)&#xff1a;接…

【PCB工艺】基础:电子元器件

电子原理图&#xff08;Schematic Diagram&#xff09;是电路设计的基础&#xff0c;理解电子元器件和集成电路&#xff08;IC&#xff09;的作用&#xff0c;是画好原理图的关键。 本专栏将系统讲解 电子元器件分类、常见 IC、电路设计技巧&#xff0c;帮助你快速掌握电子电路…

Html label标签中的for属性(关联表单控件:将标签与特定的表单元素(如输入框、复选框等)关联起来;提高可用性;无障碍性)

文章目录 示例代码for属性含义完整代码示例 示例代码 <div class"form-group"> <!-- 表单组&#xff0c;包含省份输入框和标签 --><label for"province">省份名称&#xff1a;</label> <!-- 省份输入框的标签 --><input…

S32K144外设实验(二):ADC单通道单次采样(软件触发)

文章目录 1. 概述1.1 理论回顾1.1.1 时钟系统1.1.2 采样通道1.2 实验目的2. 配置与代码编写1. 概述 1.1 理论回顾 S32K144的ADC应该说是特别灵活,笔者采用循序渐进的方式来学习使用这个很重要的外设。 在《入门笔记系列》专栏中对用户手册进行了翻译和解读,这里在回顾一下A…

进程控制~

一.进程控制 1.进程创建 我们可以通过./cmd来运行我们的程序&#xff0c;而我们运行的程序就是bash进程常见的子进程。当然我们也可以通过fork()系统调用来创建进程。 NAME fork - create a child process SYNOPSIS #include <unistd.h> pid_t fork(void…