Python-列表索引超出范围,“ for”循环

时间:2020-04-10 22:15:34

标签: python for-loop

我不知道如何遍历列表元素的“ for”循环可能超出范围。 可以打印的第一部分似乎还可以。

import random

def random_list(n):
    l = []
    for i in range(0,n):
        l.append(random.randint(0,n))

    return l


def maximum(n):
    x = 0
    b = random_list(n)
    for i in b:
        if b[i] > x:
            x = b[i]


print (maximum(10))

2 个答案:

答案 0 :(得分:3)

此:

for i in b:
    if b[i] > x:
        x = b[i]

遍历b的元素,而不是索引。更改为

for i in b:
    if i > x:
        x = i

您还需要从函数中返回某些内容,可能是x

答案 1 :(得分:0)

考虑到您知道如何遍历python中的列表,该错误可能是由于randint导致的,该high在间隔[low,high]中生成一个整数。这意味着high - 1是可能的输出,而程序中的最高索引是random.randint(0, 0)

例如

0

给予random.randint(10)

类似地,10可以返回myList = [1, 3, 5, 7, 9]

如果您不了解如何在Python中遍历列表,请考虑一个简单的示例:

采用以下列表:

for element in myList:
    print(element, end=" ")

现在,有两种方法可以遍历列表:

  1. 直接访问元素:

    1 3 5 7 9
    

这给出了输出:

for idx in range(len(myList)):
    print(idx, ":", myList[idx], end=" ")
  1. 使用索引访问元素

    0:1 1:3 2:5 3:7 4:9
    

这给出了输出:

model = Sequential()
model.add(LSTM(3, input_shape=(3000, 4), return_sequences=True))
model.add(LSTM(3, activation = 'softmax', return_sequences=True))

model.summary()