首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

查找列表中所有最大值索引的最快方法-- Python

在Python中,可以使用以下方法查找列表中所有最大值索引的最快方法:

方法1:使用循环遍历列表,同时记录最大值和对应索引的列表。然后,再遍历最大值列表,找到所有最大值对应的索引。

代码语言:txt
复制
def find_max_indexes(nums):
    max_value = float('-inf')
    max_indexes = []
    for i in range(len(nums)):
        if nums[i] > max_value:
            max_value = nums[i]
            max_indexes = [i]
        elif nums[i] == max_value:
            max_indexes.append(i)
    return max_indexes

# 示例使用:
numbers = [1, 3, 5, 3, 6, 3, 5]
result = find_max_indexes(numbers)
print(result)  # 输出:[2, 6]

方法2:使用内置函数max()找到列表中的最大值,然后使用列表解析来获取所有最大值的索引。

代码语言:txt
复制
def find_max_indexes(nums):
    max_value = max(nums)
    max_indexes = [i for i, num in enumerate(nums) if num == max_value]
    return max_indexes

# 示例使用:
numbers = [1, 3, 5, 3, 6, 3, 5]
result = find_max_indexes(numbers)
print(result)  # 输出:[2, 6]

方法3:使用NumPy库中的函数argwhere(),将列表转换为NumPy数组,然后通过比较获取最大值索引。

代码语言:txt
复制
import numpy as np

def find_max_indexes(nums):
    arr = np.array(nums)
    max_value = np.max(arr)
    max_indexes = np.argwhere(arr == max_value).flatten().tolist()
    return max_indexes

# 示例使用:
numbers = [1, 3, 5, 3, 6, 3, 5]
result = find_max_indexes(numbers)
print(result)  # 输出:[2, 6]

这些方法都能够快速查找列表中所有最大值的索引。选择哪种方法取决于具体需求和使用环境。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券