Skip to main content
 首页 » 编程设计

python之简单的 python 嵌套循环之索引超出范围

2025年05月04日11Leo_wl

当我运行以下代码时,出现错误:

def genSet(nums): 
    for i in range(0, len(nums)-1): 
        for x in range(0, len(nums)-1): 
            if nums[x] == nums[i]: 
                del nums[x]  
    return nums 
 
a = [5, 4, 3, 5, 6, 7, 8, 5, 4, 3]   
print genSet(a) 

输出:

Traceback (most recent call last): 
  File "49.py", line 9, in <module> 
    print genSet(a) 
  File "49.py", line 4, in genSet 
    if nums[x] == nums[i]: 
IndexError: list index out of range 

据我所知(我将 if 语句替换为“print x, i”)这两个 for 循环没问题,那么为什么索引超出范围?

请您参考如下方法:

不要执行 del nums[x],因为这样会使 nums 变短,从而导致异常。

您可以通过set_nums = set(nums)简单地从列表中创建一个集合