目录
Find the largest number in a list without max() in Python
- 在 Python 中查找没有 max() 的列表中的最大数字
- 在没有最小/最大函数的列表中找到最小值和最大值
- 使用 sorted() 在没有 max() 的列表中找到最大的数字
- 使用 sorted() 在没有最小值/最大值的列表中查找最小值和最大值
在 Python 中不使用 max() 查找列表中的最大数
要在不使用函数的情况下查找列表中的最大数字max()
:
- 声明一个新变量并将其初始化为
None
. - 使用
for
循环遍历列表。 - 检查每个数字是否大于当前最大值。
- 将满足条件的每个数字分配给新变量。
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
和值。max
min()
在没有最小/最大函数的列表中找到最小值和最大值
要在没有最小/最大函数的情况下查找列表中的最小值和最大值:
- 初始化两个将存储最小值和最大值的变量。
- 使用
for
循环遍历列表。 - 检查每个数字是否小于
min
或大于max
。 - 更新变量的值。
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()
这是一个三步过程:
- 使用该
sorted()
函数获取新的排序列表。 - 访问 index 处的列表项
-1
。 - 索引处的项目
-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
,最后一项的索引为-1
或len(my_list) - 1
。
使用 sorted() 在没有最小值/最大值的列表中查找最小值和最大值
这是一个三步过程:
- 使用该
sorted()
函数获取新的排序列表。 - 访问索引处的列表项
0
以获取最小值。 - 访问索引处的列表项
-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
存储列表中最大的数字。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: