在 Python 中不使用 max() 和 min() 在列表中查找最大值和最小值

目录

Find the largest number in a list without max() in Python

  1. 在 Python 中查找没有 max() 的列表中的最大数字
  2. 在没有最小/最大函数的列表中找到最小值和最大值
  3. 使用 sorted() 在没有 max() 的列表中找到最大的数字
  4. 使用 sorted() 在没有最小值/最大值的列表中查找最小值和最大值

在 Python 中不使用 max() 查找列表中的最大数

要在不使用函数的情况下查找列表中的最大数字max()

  1. 声明一个新变量并将其初始化为None.
  2. 使用for循环遍历列表。
  3. 检查每个数字是否大于当前最大值。
  4. 将满足条件的每个数字分配给新变量。
主程序
my_list = [2, 8, 4, 1, 7] largest_number = None for number in my_list: if largest_number is None or largest_number < number: largest_number = number # ✅ get the largest number print(largest_number) # 👉️ 8 # ✅ get the index of the largest number print(my_list.index(largest_number)) # 👉️ 1

可以使用相同的方法在不使用函数的情况下查找列表中的最小值min()

主程序
my_list = [4, 3, 7, 1, 9] min_number = None for number in my_list: if min_number is None or number < min_number: min_number = number # ✅ get the min value in a list print(min_number) # 👉️ 1 # ✅ get the index of the min value print(my_list.index(min_number)) # 👉️ 3

我们使用for 循环遍历列表。

如果largest_number变量存储了一个None值或小于当前数字,我们将变量重新分配给当前迭代的数字。

最后一次迭代后,largest_number变量将最大值存储在列表中。

如果您需要找到最大数的索引,请使用该list.index()
方法。

主程序
my_list = [2, 8, 4, 1, 7] largest_number = None for number in my_list: if largest_number is None or largest_number < number: largest_number = number print(largest_number) # 👉️ 8 index_largest_number = my_list.index(largest_number) print(index_largest_number) # 👉️ 1

list.index()方法返回其值等于提供的参数的第一个项目的索引。

如果列表为空,则largest_number变量保持设置为None

主程序
my_list = [] largest_number = None for number in my_list: if largest_number is None or largest_number < number: largest_number = number print(largest_number) # 👉️ None index_largest_number = ( my_list.index(largest_number) if largest_number is not None else None ) print(index_largest_number) # 👉️ None

if/else我们在调用该方法时还使用了内联语句,因为如果列表中没有这样的项目,list.index()
该方法会引发一个异常。
ValueError

这是一个可重用的函数,可用于在没有max
() 函数的列表中查找
min和值maxmin()

在没有最小/最大函数的列表中找到最小值和最大值

要在没有最小/最大函数的情况下查找列表中的最小值和最大值:

  1. 初始化两个将存储最小值和最大值的变量。
  2. 使用for循环遍历列表。
  3. 检查每个数字是否小于min或大于max
  4. 更新变量的值。
主程序
def get_min_max(l): if not l: raise ValueError('Please provide a non-empty list') minimum = maximum = l[0] for number in l[1:]: if number < minimum: minimum = number elif number > maximum: maximum = number return [minimum, maximum] print(get_min_max([2, 6, 4, 8])) # 👉️ [2, 8] print(get_min_max([6, 2, 3, 1])) # 👉️ [1, 6]

第一步是将列表中的第一个数字分配给 和minimum变量
maximum

我们使用for循环遍历列表的其余部分。

在每次迭代中,我们检查当前数字是否小于存储在minimum变量中的值。

如果满足条件,我们将数字分配给变量。

否则,我们检查当前数字是否大于存储在maximum变量中的值。

如果满足条件,我们将数字分配给变量。

最后一次迭代后:

  • minimum变量存储列表中的最小数字
  • 变量maximum存储列表中的最大数字

或者,您可以使用该sorted()功能。

在不使用 max() 的情况下查找列表中的最大数sorted()

这是一个三步过程:

  1. 使用该sorted()函数获取新的排序列表。
  2. 访问 index 处的列表项-1
  3. 索引处的项目-1存储排序列表中的最大数字。
主程序
my_list = [2, 8, 4, 1, 7] largest_number = sorted(my_list)[-1] print(largest_number) # 👉️ 8 index_largest_number = my_list.index(largest_number) print(index_largest_number) # 👉️ 1

sorted函数从 iterable 中的项目返回一个新的排序列表。

索引处的列表项-1存储列表中最大的数字。

Python 索引是从零开始的,因此列表中的第一项的索引为0,最后一项的索引为-1len(my_list) - 1

使用 sorted() 在没有最小值/最大值的列表中查找最小值和最大值

这是一个三步过程:

  1. 使用该sorted()函数获取新的排序列表。
  2. 访问索引处的列表项0以获取最小值。
  3. 访问索引处的列表项-1以获取最大值。
主程序
def get_min_max(l): sorted_list = sorted(l) minimum = sorted_list[0] maximum = sorted_list[-1] return [minimum, maximum] print(get_min_max([2, 6, 4, 8])) # 👉️ [2, 8] print(get_min_max([6, 2, 3, 1])) # 👉️ [1, 6]

sorted函数从 iterable 中的项目返回一个新的排序列表。

主程序
print(sorted([2, 6, 4, 8])) # 👉️ [2, 4, 6, 8] print(sorted([2, 6, 4, 8])[0]) # 👉️ 2 print(sorted([2, 6, 4, 8])[-1]) # 👉️ 8

我们访问索引处的列表项0以获取列表中的最小数字。

索引处的列表项-1存储列表中最大的数字。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: