在Python中,可以使用内置函数max()
和min()
来寻找列表中的最大值和最小值。但是,如果需要返回最大值和最小值所在的位置,可以使用enumerate()
函数和列表推导式来实现。
以下是寻找列表中最大值和最小值并返回其所在位置的方法:
# 示例1:寻找列表中最大值和最小值并返回其所在位置
lst = [3, ,4, 1, 5, 9, 2, 6, 5, 3, 5]
# 寻找最大值及其位置
max_value, max_index = max((value, index) for index, value in enumerate(lst))
print(f"最大值为{max_value},位置为{max_index}")
# 寻找最小值及其位置
min_value, min_index = min((value, index) for index, value in enumerate(lst))
print(f"最小值为{min_value},位置为{min_index}")
输出结果为:
最大值为9,位置为5
最值为1,位置为1
在这个例子中,我们使用了列表推导式和enumerate()
函数来寻找列表中的最大值和最小值及其位置。首先,我们列表推导式将列表中的每个元素和其索引组成一个元组,然后使用max()
和min()
函数找到最大值和最小值。最后,我们使用元组的解包(unpacking)功能将最大值和最小值及其位置分别赋值给变量max_value
、max_index
、min_value
和min_index
。
以下是另一个示例,演示如何在列表中寻找多个最大值和最小值及其位置:
# 示例2:寻找列表中多个最大值和最小值及其位置
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 寻找多个最大值及其位置
max_value = max(lst)
max_indices = [index for index, value in enumerate(lst) if value == max_value]
print(f"最大值为{max_value},位置为{max_indices}")
# 寻找多个最小值及其位置
min_value = min(lst)
min_indices = [index for index value in enumerate(lst) if value == min_value]
print(f"最小值为{min_value},位置为{min_indices}")
输出结果为:
最大值为9,位置为[5]
最小值为1,位置为[1, 3]
在这个例子中,我们使用列表推导式和enumerate()
函数来寻找列表中的多个最大值和最小值及其位置。首先,我们使用max()
和min()
函数找到最大值和最小值,然后使用列表推导式和enumerate()
函数找到最大值和最小值所在的位置。最后,我们将最大值和最小值在的位置分别赋值给变量max_indices
和min_indices
。