为什么我得到一个索引错误,当我做这个If语句和[I]

  • 本文关键字:If 语句 索引 一个 错误 python
  • 更新时间 :
  • 英文 :


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)

错误提示"列表索引超出范围">

当您遍历数组时,您得到的是值,而不是索引。所以考虑

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

另外,请记住,在Python中大写名称通常是为CONSTANTSClassNames保留的,因此使用L作为数组变量并不是非常Python。考虑一个更具描述性的名称,如result_listlargest_elements

正如在评论中已经提到的,i不是索引,它是在您遍历aa中的元素。

如果需要索引,使用:

for i in range(len(a)):

或者你可以这样做:

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

最新更新