删除两个列表之间的交集 [英] Delete intersection between two lists
本文介绍了删除两个列表之间的交集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个对象列表:
m2m_links = mymodel._meta.many_to_many
o2m_links = mymodel._meta.get_all_related_objects()
o2m_links中有一个对象我想忽略/删除。可以通过以下方式进行标识:
There is an object in o2m_links that I wish to omit/delete. It can be identified in the following way:
for r in m2m_links:
if not r.rel.through._meta.auto_created:
# Delete o2m_links object that has the same name as r.rel.through._meta.object_name
如何删除符合此循环命中条件的o2m_links对象?
推荐答案
您可以使用集合和列表理解来过滤列表:
You can use a set and a list comprehension to filter the list:
names_to_remove = set([r.rel.through._meta.object_name for r in m2m_links if not r.rel.through._meta.auto_created])
filtered_list = [r for r in o2m_links if r.rel.through._meta.object_name in names_to_remove]
这篇关于删除两个列表之间的交集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文