【发布时间】:2013-09-05 20:24:20
【问题描述】:
我有一个包含许多子列表的列表。例如:
full_list = [[1, 1, 3, 4], [3, 99, 5, 2],[2, 4, 4], [3, 4, 5, 2, 60]]
我还有另一个列表,称为省略。例如:
omit = [99, 60, 98]
如果该子列表中的 any 元素在省略列表中,我想删除 full_list 中的子列表。例如,我希望结果列表是:
reduced_list = [[1, 1, 3, 4], [2, 4, 4]]
因为只有这些子列表没有省略列表中的元素。
我猜有一些简单的方法可以通过列表理解来解决这个问题,但我无法让它发挥作用。我尝试了很多东西:例如:
reduced_list = [sublist for sublist in full_list if item for sublist not in omit]
- 此代码导致错误(无效的 snytax) - 但我认为我遗漏的不止这些。
任何帮助将不胜感激!
p.s.,上面是一个简化的问题。我的最终目标是从非常长的字符串列表(例如,500,000 个子列表)中删除子列表,如果这些子列表的任何元素(字符串)在“省略”列表中包含超过 2000 个字符串。
【问题讨论】:
-
你们太棒了!感谢您的回复。在较长的列表中,它就像一个魅力。
标签: python performance list sublist