这两个输出结果应该怎么解释啊???
{:5_99:}为什么结果会这样
{:10_330:} 为什么呢 1. 因为遍历 列表 a, 第一次循环取出第一个元素
然后删除了列表中的第一个元素
当循环第二遍时,因为列表少了一个元素,就会取第三个元素了
所以就删除了元素 3
最终剩余了 元素 2 在列表中。
总结:这种编程风格不好,容易混淆,所以在for 循环中,不要改变 in 后面的列表
2. remove 方法直接修改 调用它的列表实例,没有返回值,所以第一次循环后,就将 列表设为 None,再返回循环时,in 试图在None 中取元素,就会出错。 奇葩的问题....
就像卖东西,这个东西你已经卖出去,已经消失了,你还想再卖一遍。
这个东西你去哪找? XiaoPaiShen 发表于 2020-4-17 16:33
1. 因为遍历 列表 a, 第一次循环取出第一个元素
然后删除了列表中的第一个元素
当循环第二遍时,因为列表 ...
{:10_275:} 我明白了 谢谢小哈龙 for遍历列表时实际遍历的是index Judie 发表于 2020-4-18 08:29
我明白了 谢谢小哈龙
不用客气 语法
remove()方法语法:
list.remove(obj)
参数
obj -- 列表中要移除的对象。
返回值
该方法没有返回值但是会移除列表中的某个值的第一个匹配项。
没有返回值,,你要把返回赋给谁呢,,而且这种遍历是危险的,,他只根据长度来,,第一次remove 1,,length变为2,,下次就remove 3 了,,, remove() 方法没有返回值,它只是在原列表上操作,所以不用 a = a.remove(i),直接 a.remove(i)
页:
[1]