删除列表中的某个元素 python,Python 删除列表元素

  删除列表中的某个元素 python,Python 删除列表元素

  以下代码是否能正确运行,如果不能,请说明原因;如果是,请分析执行结果。

  当程序给出代码后,一定要在程序中自己运行。运行结果如下:

  错误类型:不知道英文单词的意思,可以借助软件翻译。这里是一个索引错误,列表分配索引超出范围(百度翻译给出的结果)。用人类的话说,只有当x[i]中的I值大于列表的实际长度时,才会出现错误。

  调试:在del语句前后添加print语句首先看del语句前后x[i]的值。

  如果这里不明白,补充一些代码如下

  尝试添加一些代码来补充输出。

  输出分析从上图可以看出,正常操作结束时X列表的长度为10,索引下标的值为9,那么接下来的操作就是X列表的长度为9,索引下标的值为10,这样就产生了一个错误:x[i]中I的值大于列表的实际长度。

  问题:下面两个代码的逻辑不是一致的吗?输出怎么会不一样?

  调试代码,如下所示:

  总结这里有一个认知错误。每执行一次del语句,X列表中就会少一个数据,那么自然len(x)不会是一个固定值:20。随着操作的进行,列表的长度变得越来越小。下标索引值为6时(从0到6,运行7次),此时不满足第一个代码的if判断,因此不运行del语句。但是第二个没有if判断,只是简单的删除了10个元素(列表长度为20),所以最后输出和删除的都是10个值。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: