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

标签 python list for-loop set

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

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)简单地从列表中创建一个集合

关于python - 简单的 python 嵌套循环 - 索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193471/

相关文章:

python - memory_profiler 的 mprof 未运行

python - 认知服务识别的问题。我无法正确编写查询

java - 当列表中有空值时,如何使用流获取最大日期列表

c - 当多个 scanf() 包含在单个 for 循环中时会发生什么

python - 检查文件行 sttime 是否早于 2 天 - Python

python - Open3D 向 ICP 注册显示错误为 0 并返回输入转换

python - 如何使列表中的一项 == 成为另一个列表中的一项?

python - 如何摆脱 python 列表中的列表?

javascript - 为什么在 for 循环中定义的变量在 setTimeout 函数中不可见?

Python:标记每行中的列值是否包含特定单词