123Marchapril 发表于 2021-3-20 20:55:21

大家好,问一个remove的问题

>>> x =
>>> y =
>>> for i in x:
        if i in y:
                x.remove(i)

               
>>> x


我希望x列表最后是
代码哪里不对吗

qiuyouzhi 发表于 2021-3-20 20:58:36

改成这样:
>>> x =
>>> y =
>>> for i in x[:]:
        if i in y:
                x.remove(i)

               
>>> x

123Marchapril 发表于 2021-3-20 21:02:19

qiuyouzhi 发表于 2021-3-20 20:58
改成这样:

可以告诉我x和x[:]的区别吗?x也是列表啊

qiuyouzhi 发表于 2021-3-20 21:02:55

123Marchapril 发表于 2021-3-20 21:02
可以告诉我x和x[:]的区别吗?x也是列表啊

在遍历时删除列表的元素会导致跳过几个元素

123Marchapril 发表于 2021-3-20 21:08:43

qiuyouzhi 发表于 2021-3-20 21:02
在遍历时删除列表的元素会导致跳过几个元素

也就是说用x[:],可以做到遍历所有元素,并且最后x是最正确的列表,是吧

qiuyouzhi 发表于 2021-3-20 21:10:26

123Marchapril 发表于 2021-3-20 21:08
也就是说用x[:],可以做到遍历所有元素,并且最后x是最正确的列表,是吧

差不多吧

123Marchapril 发表于 2021-3-20 21:11:45

qiuyouzhi 发表于 2021-3-20 21:10
差不多吧

感觉好难啊,小甲鱼讲过这个知识点吗?我那会儿想了半天不知道哪里出错了。非常感谢您
页: [1]
查看完整版本: 大家好,问一个remove的问题