如何找到 Python 列表中最大值的索引?
How to find the index of the max value in a list for Python?
我有一个列表,我需要找到列表中的最大元素,并记录最大元素所在的索引。
这是我的代码。
list_c = [-14, 7, -9, 2]
max_val = 0
idx_max = 0
for i in range(len(list_c)):
if list_c[i] > max_val:
max_val = list_c[i]
idx_max = list_c.index(i)
return list_c, max_val, idx_max
请帮忙。我刚开始写代码,卡在这里了。
您只需要 .max() 和 .index() 函数。首先,找到列表的最大元素,然后使用 index() 函数简单地获取它的索引。
你可以在这里看到完整的教程:https://www.kite.com/python/answers/how-to-find-the-index-of-the-max-value-in-a-list-in-python
.index
只能对列表中的元素进行。所以,idx_max = list_c.index(list_c[i])
max_val = list_c[i]
idx_max = list_c.index(list_c[i])
不过,这是一个简化版
list_c = [-14, 7, -9, 2]
print(max(list_c),list_c.index(max(list_c)))
- 您正在尝试查找
i
的索引。应该是 list_c[i]
.
Easy way/Better way is: idx_max = i
. (Based on @Matthias comment above.)
- 使用
print
打印结果而不是 return
。您在函数内部使用 return
。
- 如果
list_c
全部为负值,您的代码也不起作用,因为您将 max_val
设置为 0
。你总是得到 0。
list_c = [-14, 7, -9, 2]
max_val = 0
idx_max = 0
for i in range(len(list_c)):
if list_c[i] > max_val:
max_val = list_c[i]
idx_max = i
print(list_c, max_val, idx_max)
[-14, 7, -9, 2] 7 1
最简单的方法是将逻辑应用于整个列表。您可以使用 max(list) 获取列表的最大值,并且可以使用与上面相同的索引函数来获取该数字在列表中的索引。
max_val = max(list_c)
idx_max = list_c.index(max_val)
如果您想遍历这些值以找到最大值,请注意以下事项:
list.index(value) 将在列表中找到该值的索引。在你的情况下,你正在写 list.index(index_number) 这没有意义。 'i' 已经代表列表索引,所以只需设置 idx_max = 'i'.
另外需要注意的是,如果将max_val设置为零,如果所有列表项都小于零,那么在循环过程中会一直为零,永远找不到最大值价值。最好先将 max_val 设置为列表的第一项,即 list_c[0].
list_c = [-14, 7, -9, 2]
max_val = list_c[0]
idx_max = 0
for i in range(len(list_c)):
if list_c[i] > max_val:
max_val = list_c[i]
idx_max = i
NB 'return' 用于 return 函数的值。如果要打印值,请使用 print(list_c, max_val, idx_max).
您可以通过将列表转换为 NumPy 数组来使用 NumPy argmax()。
import numpy as np
list_c = [-14, 7, -9, 2]
print("Index max:",np.argmax(np.asarray(list_c)))
print("Value max:",list_c[np.argmax(np.asarray(list_c))])
索引最大值:1
最大值:7
我有一个列表,我需要找到列表中的最大元素,并记录最大元素所在的索引。
这是我的代码。
list_c = [-14, 7, -9, 2]
max_val = 0
idx_max = 0
for i in range(len(list_c)):
if list_c[i] > max_val:
max_val = list_c[i]
idx_max = list_c.index(i)
return list_c, max_val, idx_max
请帮忙。我刚开始写代码,卡在这里了。
您只需要 .max() 和 .index() 函数。首先,找到列表的最大元素,然后使用 index() 函数简单地获取它的索引。
你可以在这里看到完整的教程:https://www.kite.com/python/answers/how-to-find-the-index-of-the-max-value-in-a-list-in-python
.index
只能对列表中的元素进行。所以,idx_max = list_c.index(list_c[i])
max_val = list_c[i]
idx_max = list_c.index(list_c[i])
不过,这是一个简化版
list_c = [-14, 7, -9, 2]
print(max(list_c),list_c.index(max(list_c)))
- 您正在尝试查找
i
的索引。应该是list_c[i]
.
Easy way/Better way is:
idx_max = i
. (Based on @Matthias comment above.)
- 使用
print
打印结果而不是return
。您在函数内部使用return
。 - 如果
list_c
全部为负值,您的代码也不起作用,因为您将max_val
设置为0
。你总是得到 0。
list_c = [-14, 7, -9, 2]
max_val = 0
idx_max = 0
for i in range(len(list_c)):
if list_c[i] > max_val:
max_val = list_c[i]
idx_max = i
print(list_c, max_val, idx_max)
[-14, 7, -9, 2] 7 1
最简单的方法是将逻辑应用于整个列表。您可以使用 max(list) 获取列表的最大值,并且可以使用与上面相同的索引函数来获取该数字在列表中的索引。
max_val = max(list_c)
idx_max = list_c.index(max_val)
如果您想遍历这些值以找到最大值,请注意以下事项:
list.index(value) 将在列表中找到该值的索引。在你的情况下,你正在写 list.index(index_number) 这没有意义。 'i' 已经代表列表索引,所以只需设置 idx_max = 'i'.
另外需要注意的是,如果将max_val设置为零,如果所有列表项都小于零,那么在循环过程中会一直为零,永远找不到最大值价值。最好先将 max_val 设置为列表的第一项,即 list_c[0].
list_c = [-14, 7, -9, 2] max_val = list_c[0] idx_max = 0 for i in range(len(list_c)): if list_c[i] > max_val: max_val = list_c[i] idx_max = i
NB 'return' 用于 return 函数的值。如果要打印值,请使用 print(list_c, max_val, idx_max).
您可以通过将列表转换为 NumPy 数组来使用 NumPy argmax()。
import numpy as np
list_c = [-14, 7, -9, 2]
print("Index max:",np.argmax(np.asarray(list_c)))
print("Value max:",list_c[np.argmax(np.asarray(list_c))])
索引最大值:1
最大值:7