Python 3.x 如何处理错误'';列表索引超出范围“;作为例外?

Python 3.x 如何处理错误'';列表索引超出范围“;作为例外?,python-3.x,list,exception,Python 3.x,List,Exception,问题是,我得到了一些代码,并且它的结构是这样的,我们希望能够访问列表中未初始化的元素。(我不想改变它背后的逻辑,因为它涉及一些数学概念)。但是我已经得到了一些其他语言的代码,我想用python做同样的事情(处理这个异常并让程序运行) a=[] 对于范围(1,10,2)中的i:a.append(i) 对于范围(10)内的j: 尝试: a[i]+=1 最后: a、 附加(1) --------------------------------------------------------------

问题是,我得到了一些代码,并且它的结构是这样的,我们希望能够访问列表中未初始化的元素。(我不想改变它背后的逻辑,因为它涉及一些数学概念)。但是我已经得到了一些其他语言的代码,我想用python做同样的事情(处理这个异常并让程序运行)

a=[]
对于范围(1,10,2)中的i:a.append(i)
对于范围(10)内的j:
尝试:
a[i]+=1
最后:
a、 附加(1)
---------------------------------------------------------------------------
索引器回溯(最后一次最近调用)
在里面
对于范围(10)内的j,为3:
4.尝试:
---->5a[i]+=1
6最后:
7 a.追加(1)
索引器:列表索引超出范围
然后我尝试了其他方法(在阅读了类似的堆栈溢出帖子之后)

a=[]
对于范围(1,10,2)中的i:a.append(i)
对于范围(10)内的j:
如果(a[j]):a[j]+=1
其他:
a、 附加(1)
ndexError回溯(最近一次呼叫最后一次)
在里面
对于范围(10)内的j,为3:
4.
---->5如果(a[j]):a[j]+=1
6其他:
7 a.追加(1)
索引器:列表索引超出范围

正如您所看到的,错误仍然存在。

您可以通过以下方式处理它:

except IndexError:
    pass
完整代码:

a = []
for i in range(1, 10, 2): a.append(i)
for j in range(10):
    try:
        a[i] += 1
    except IndexError:
        pass
    finally:
        a.append(1)

检查第一个
循环后列表的长度在第一个示例中,将第5行的
a[i]+=1
替换为
a[j]+=1
。第二个示例中的错误是另一个错误。如果(a[j])
,则不能执行
,因为如果
a[j]
不存在,则会引发
索引器
except IndexError:
    pass
a = []
for i in range(1, 10, 2): a.append(i)
for j in range(10):
    try:
        a[i] += 1
    except IndexError:
        pass
    finally:
        a.append(1)
a = []
for i in range(1,10,2):
    a.append(i)
    try:
        for j in range(10):
            a[i] +=1
    except:
        pass
    finally:
        a.append(1)
print(a)