【发布时间】:2018-11-03 17:38:28
【问题描述】:
我有一个清单
a=[[1,2,3,4,5,6],[7,8,9,10,11,12]]
检查a 中的任何列表是否存在于另一个列表b 中的最快方法是什么,其中
b=[[5, 9, 25, 31, 33, 36],[7,8,9,10,11,12],[10, 13, 22, 24, 33, 44]]
如果 b 中存在 a 中的任何列表,我想将其删除。我目前正在使用此代码:
for each in a:
for item in b:
if set(each).issubset(item)
a.remove(each)
这可行,但在处理大型列表时速度很慢,所以想知道是否有更好的方法。上面的代码给了我以下结果:
print(a)
[[1, 2, 3, 4, 5, 6]]
我不担心顺序,例如,如果a 中的列表是[1,2,3,4,5,6],如果列表b 中存在[1,2,3,4,5,6] 或[3,4,1,6,2,5] 等列表,我希望将其删除。
【问题讨论】:
-
如果
a是[[1, 1, 2, 3]]而b是[[7, 3, 2, 1], [4, 5, 6]]怎么办? -
@bipll 这也是可以接受的