我希望找到最快的方法来解决这个问题,假设我有一个列表的列表:
myList = [[1,2,3,4,5],[2,3],[4,5,6,7],[1,2,3],[3,7]]
我希望能够移除所有其他列表的子列表,例如我希望获得以下输出:
myList = [[1,2,3,4,5],[4,5,6,7],[3,7]]
由于列表 [2,3] 和 [1,2,3] 被完全包含在其他列表中,因此它们被删除了,而 [3,7] 没有被删除,因为没有一个单独的列表包含所有这些元素。
如果使用列表或集合更容易处理,而不限于任何一种数据结构。
我能想到最好的方法是这样的,但它并不真正起作用,因为我正在迭代删除列表。我试图将其复制到一个新列表中,但是无论如何都无法使它正常工作。
for outter in range(0,len(myList)):
outterSet = set(myList[outter])
for inner in range(outter,len(myList)):
innerSet = set(myList[inner])
if innerSet.issubset(outterSet):
myList.remove(innerSet)
谢谢。