鱼C论坛

 找回密码
 立即注册
查看: 2170|回复: 5

[技术交流] Python min() 函数

[复制链接]
发表于 2020-3-19 22:03:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2020-3-20 14:54 编辑

Python min() 函数


语法

  1. min(iterable, *[, default=obj, key=func]) -> value
  2. min(arg1, arg2, *args, *[, key=func]) -> value
复制代码


参数

参数有两种传递方式:

1. 传递 1 或多个可迭代对象:如果传递 1 个可迭代对象,比的是可迭代对象里面的值;

    如果给的是 多个可迭代对象,比的是每一个迭代器对象。

2. 传递多个字符串或数字:比的是每个字符串或数字。

参数描述
iterable可迭代对象
key自定义处理函数,以 key 的返回结果进行对比
default默认值,只有在传递单个空值时有效


描述

min() 方法用于找出最小的值。

返回值

返回最小的值。

例子

  1. >>> min("aobiwjoe4not4igja;wolqo28475199*&")
  2. '&'
  3. >>> min(1, 7, 4, 7, 3, 3, 6)
  4. 1
  5. >>> min([4, 2, 5, 7, 3, 2])
  6. 2
  7. >>> min([4, 2, 5, 7, 3, 2], [3])
  8. [3]
  9. >>> min([4, 2, 5, 7, 3, 2], [3, 4, 6, 8, 4, 6, 8, 9, 4, 5, 3])
  10. [3, 4, 6, 8, 4, 6, 8, 9, 4, 5, 3]
  11. >>> min([4, 2, 5, 7, 3, 2], [3, 4, 6, 8, 4, 6, 8, 9, 4, 5, 3], key=len)
  12. [4, 2, 5, 7, 3, 2]
  13. >>> min("")
  14. Traceback (most recent call last):
  15.   File "<pyshell#8>", line 1, in <module>
  16.     min("")
  17. ValueError: min() arg is an empty sequence
  18. >>> min("", default="default")
  19. 'default'
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 08:49:31 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-3-20 08:54 编辑

一种可能的实现

  1. def min(iterable,/,*vars,key=None,default=None):
  2.     if vars:
  3.         if default is not None:
  4.             raise TypeError("Cannot specify a default for min() with multiple positional arguments")

  5.         least=iterable
  6.         flag=key(least)

  7.     else:
  8.         iterator=iter(iterable)

  9.         if default is None:
  10.             try:
  11.                 least=next(iterator)

  12.             except StopIteration:
  13.                 raise ValueError("min() arg is an empty sequence")
  14.         else:
  15.             least=default

  16.     if key is None:
  17.         for var in vars:
  18.             if var<least:
  19.                 least=var

  20.         return least

  21.     else:
  22.         flag=key(least)

  23.         for var in vars:
  24.             if (temp:=key(var))<flag:
  25.                 flag=temp
  26.                 least=var

  27.         return least
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 13:04:22 | 显示全部楼层
Pyton
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 13:36:03 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 14:48:50 | 显示全部楼层

标题写成pyton了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 14:54:18 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-18 10:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表