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中大写名称通常是为CONSTANTS
和ClassNames
保留的,因此使用L
作为数组变量并不是非常Python。考虑一个更具描述性的名称,如result_list
或largest_elements
。
正如在评论中已经提到的,i
不是索引,它是在您遍历a
时a
中的元素。
如果需要索引,使用:
for i in range(len(a)):
或者你可以这样做:
for i in a:
if i == b:
L.append(i)