python 为什么在执行此If语句和[i]时出现索引错误

ztigrdn8  于 2022-12-17  发布在  Python
关注(0)|答案(2)|浏览(136)

问题与if语句和for循环有关
它应该找到列表中最大的数字,并找出它有多少个

L = []
n = 6
a = [5, 1, 4, 88, 6, 7, 4, 88, 6, 6, 88, 5, 3, 45, 57]

b = max(a)

for i in a:
    if a[i] == b:
        L.append(a[i])
print(L)

错误显示“列表索引超出范围”

kkbh8khc

kkbh8khc1#

当你迭代一个数组时,你得到的是值,而不是索引。

for element in a:
    if element == b == True:
        L.append(element)

另外,记住Python中的大写名称通常是为CONSTANTSClassNames保留的,所以你使用L作为数组变量并不是很Python化,考虑一个更具描述性的名称,比如result_listlargest_elements

v8wbuo2f

v8wbuo2f2#

正如注解中提到的,i不是索引,它是a中的元素,因为您正在遍历a
如果需要索引,请使用以下命令:

for i in range(len(a)):

或者您可以执行以下操作:

for i in a:
    if i == b:
        L.append(i)

相关问题