Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输出错误。如果列表2中存在元素,请从列表1中删除元素_Python_Arrays_Django_List - Fatal编程技术网

Python 输出错误。如果列表2中存在元素,请从列表1中删除元素

Python 输出错误。如果列表2中存在元素,请从列表1中删除元素,python,arrays,django,list,Python,Arrays,Django,List,代码将删除另一个列表中的元素 错误输出 代码写在这里: s=['a@gmail.com','b@gmail.com',] for e in l: if e in s: l.remove(e) print(l)``` Showing wrong output **output should be =['c@gmail.com','d@gmail.com']** **but output coming is ['b@gmail.com','c@gmail.com','d@

代码将删除另一个列表中的元素

错误输出

代码写在这里:

s=['a@gmail.com','b@gmail.com',]
for e in l:
    if e in s:
        l.remove(e)
print(l)```

Showing wrong output

**output should be =['c@gmail.com','d@gmail.com']**
**but output coming is ['b@gmail.com','c@gmail.com','d@gmail.com']** 


使用
for
循环迭代时从列表中删除项目这不是最佳做法,会导致意外行为,您可以使用列表理解:

l = [e for e in l if e not in s]

使用
for
循环迭代时从列表中删除项目这不是最佳做法,会导致意外行为,您可以使用列表理解:

l = [e for e in l if e not in s]

如果保持元素的顺序不相关,这将导致更快的时间

result = list(set(l) - set(s))

注意:对于上面的解决方案,如果您只设置了,则@kederrac的列表理解会比没有设置更快。如果保持元素顺序不相关,则会导致更快的时间

result = list(set(l) - set(s))
l1 = ['a','b','c','d']
l2 = ['a','b']
l3 = []
for i in l1:
    if i not in l2:
        l3.append(i)

print(l3)
注意:对于上面的带有@kederrac列表理解的解决方案,如果您只设置了(s),它也会比没有设置的更快

l1 = ['a','b','c','d']
l2 = ['a','b']
l3 = []
for i in l1:
    if i not in l2:
        l3.append(i)

print(l3)
输出:

['c', 'd']
检查列表的长度,并相应地循环它

输出:

['c', 'd']

检查列表的长度,并相应地循环。

元素的内部是什么?保留元素的顺序相关吗?元素的内部是什么?保留元素的顺序相关吗?