相关疑难解决方法(0)

删除Python列表元素

我有两个清单,

l1 = [1,2,3,4,5,6]
l2 = [3,2]
Run Code Online (Sandbox Code Playgroud)

我想要的是删除l2中的列表l1的元素,因为我做了类似的事情,

for x in l1:
    if x in l2:
        l1.remove(x)
Run Code Online (Sandbox Code Playgroud)

它给出了类似的输出

[1, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

但输出应该是这样的

[1, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

任何人都可以阐明这一点.

python list

4
推荐指数
2
解决办法
2万
查看次数

Python For循环列表有趣的结果

a = [0,1,2,3,4,5]
for b in a:
  print ":"+str(b)
  a.pop(0)
Run Code Online (Sandbox Code Playgroud)

认为这将按顺序遍历整个列表及其所有项目,我运行此代码并期望这一点.

:0
0
:1
1
:2
2
:3
3
:4
4
:5
5
Run Code Online (Sandbox Code Playgroud)

相反,我得到了这个:

:0
0
:2
1
:4
2
Run Code Online (Sandbox Code Playgroud)

现在我明白为什么会发生这种情况,但这是python中的错误吗?它不应该仍然通过所有原始对象而不是当前列表的长度?为什么这不会抛出并超出界限错误?IE:它还不应该做到:

:0
0
:1
2
:2
4
:3
Error
:4
Error
:5
Error
Run Code Online (Sandbox Code Playgroud)

python python-2.7

1
推荐指数
1
解决办法
190
查看次数

标签 统计

python ×2

list ×1

python-2.7 ×1