删除Python列表元素(Remove Python list element)

系统教程 行业动态 更新时间:2024-06-14 17:04:03
删除Python列表元素(Remove Python list element)

我有两个名单,

l1 = [1,2,3,4,5,6] l2 = [3,2]

我想要的是去除l2中列表l1的元素,因为我做了这样的事情,

for x in l1: if x in l2: l1.remove(x)

它会给出类似的输出

[1, 3, 4, 5, 6]

但输出应该是这样的

[1, 4, 5, 6]

任何一个人都可以从中看到这一点。

I have two list,

l1 = [1,2,3,4,5,6] l2 = [3,2]

what i want is to remove the element of list l1 which is in l2, for that i have done something like this,

for x in l1: if x in l2: l1.remove(x)

it gives output like

[1, 3, 4, 5, 6]

but the output should be like

[1, 4, 5, 6]

can any one shed light on this.

最满意答案

这很容易解释。

考虑你有的第一个数组:

| 1 | 2 | 3 | 4 | 5 | 6 |

现在你开始迭代

| 1 | 2 | 3 | 4 | 5 | 6 | ^

没有任何反应,迭代器递增

| 1 | 2 | 3 | 4 | 5 | 6 | ^

2被删除

| 1 | 3 | 4 | 5 | 6 | ^

迭代器递增

| 1 | 3 | 4 | 5 | 6 | ^

瞧,3还在那里。

解决方案是迭代矢量的副本,例如

for x in l1[:]: <- slice on entire array if x in l2: l1.remove(x)

或者反向迭代:

for x in reversed(l1): if x in l2: l1.remove(x)

其行为如下:

| 1 | 2 | 3 | 4 | 5 | 6 | ^ | 1 | 2 | 3 | 4 | 5 | 6 | ^ | 1 | 2 | 4 | 5 | 6 | ^ | 1 | 2 | 4 | 5 | 6 | ^ | 1 | 4 | 5 | 6 | ^ | 1 | 4 | 5 | 6 | ^

This is easily explained like this.

consider the first array you have:

| 1 | 2 | 3 | 4 | 5 | 6 |

Now you start iterating

| 1 | 2 | 3 | 4 | 5 | 6 | ^

Nothing happens, iterator increments

| 1 | 2 | 3 | 4 | 5 | 6 | ^

2 gets removed

| 1 | 3 | 4 | 5 | 6 | ^

iterator increments

| 1 | 3 | 4 | 5 | 6 | ^

And voila, 3 is still there.

The solution is to iterate ove a copy of the vector e.g.

for x in l1[:]: <- slice on entire array if x in l2: l1.remove(x)

or to iterate in reverse:

for x in reversed(l1): if x in l2: l1.remove(x)

Which acts like this:

| 1 | 2 | 3 | 4 | 5 | 6 | ^ | 1 | 2 | 3 | 4 | 5 | 6 | ^ | 1 | 2 | 4 | 5 | 6 | ^ | 1 | 2 | 4 | 5 | 6 | ^ | 1 | 4 | 5 | 6 | ^ | 1 | 4 | 5 | 6 | ^

更多推荐

本文发布于:2023-04-24 21:11:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/2c4482cc66371be5e49310992cb20cf0.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:元素   列表   Python   element   list

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!