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']
检查列表的长度,并相应地循环。元素的内部是什么?保留元素的顺序相关吗?元素的内部是什么?保留元素的顺序相关吗?