python - python中的列表索引超出范围

标签 python linux loops ubuntu compiler-errors

def Entekhab3_fun():
    h = 0
    Max = 1
    while(h <= 10):
        if(Montakhabha[h] == None):
            break
        elif(Montakhabha[h] > Max):
            Max = Montakhabha[h]
        elif(Montakhabha[h] == Max):
            Max = Montakhabha[h]
        else:
            Max = Max
        h += 1
    return(Max)

这是编译器引用的我的代码的一部分,我无法理解它有什么问题,但是当我编译它时,它说:

indexerror: list index out of range

最佳答案

唯一可能的原因是 Montakhabha元素少于 11 个。注意你的情况是h <= 10 ,所以您正在检查 Montakhabha[10]也在您的代码中。

最安全的方法是将其更改为

while h < len(Montakhabha)

一些旁注:

  • 第一个检查可能应该是 continue而不是break (最后一个 Max=Max 作业也应该如此)。
  • 使用x is None而不是x==None 。它是安全的,因为 None是一个单例值。
  • 第二个和第三个条件做同样的事情

总的来说,似乎你想做的是

max_value = 0
for element Montakhabha:
    if element > max_value:
         max_value = element

关于python - python中的列表索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294071/

相关文章:

linux - 需要从linux目录制作可启动SD卡

ruby-on-rails - rails : An elegant way to display a message when there are no elements in database

jQuery - 循环图像

javascript - 就声明而言,Javascript 中 for of 循环中的 let 和 const 之间没有区别吗?

python - 将日期(系列)列从一个 DataFrame 添加到另一个 Pandas,Python

linux - bash如何将一个目录中的大量zip文件移动到指定数量的多个子目录中?

Python 删除列表中的重复项和 1==1.0 True

Python - 设置/获取环境变量和地址

Python2.7 : FIlter out group from dataframe based on condition in groupby

python - 如何创建一个程序来输出,以便它在单词下降时再次重复每个字母?