【发布时间】:2018-04-22 21:58:36
【问题描述】:
我正在尝试找到解决此问题的最快方法,比如我有一个列表列表:
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)
谢谢。
【问题讨论】:
-
我很确定你没有一组列表。
-
Python 不接受列表作为集合的元素,因为列表不可散列。
-
抱歉,我已编辑问题以反映实际情况。我有一个列表列表。