Skip to main content
 首页 » 编程设计

python之如何使用python处理我的代码错误

2025年05月04日11三少

这是我的代码:

a=[1,0,None,3] 
 
def b(my_list): 
    for i in range(len(my_list)): 
        if not my_list[i]: 
            a.remove(my_list[i]) 
        else: 
            do_something() 
    return my_list 
 
a = b(a) 
print a 

错误是:

Traceback (most recent call last): 
  File "c.py", line 18, in <module> 
    a = b(a) 
  File "c.py", line 12, in b 
    if not my_list[i]: 
IndexError: list index out of range 

那我该怎么办呢,

谢谢

请您参考如下方法:

您正在循环内修改正在迭代的同一个列表。您可以通过制作列表的副本 并返回它来解决此问题:

def b(my_list): 
    new_list = my_list[:] 
    for i in range(len(my_list)): 
        if not my_list[i]: 
            new_list.remove(my_list[i]) 
        else: 
            do_something() 
    return new_list 

通常在Python中,当你调用b(a)这样的函数时,那么在b里面,参数my_list就是一个引用与传入的 相同 列表 (a)。语句 new_list = my_list[:] 创建一个列表的副本,您可以在函数内部修改并返回该列表。