例如
[[712, -743, 741, 698],
[673, 688, 712, -743, 741, 698],
[688, 712, -743],
[743, -712, -688]]
[712, -743, 741, 698]
和[688, 712, -743]
是[673, 688, 712, -743, 741, 698]
的一部分,因此我们删除了前2个,只保留[[673, 688, 712, -743, 741, 698]]
他们都是int 我想知道检查所有列表列表并将其过滤掉的最快方法是什么 我想要查看列表中所有元素的abs值[688,712,-743] e,如果所有元素都在另一个列表中,则将其删除。同时删除反方向且不同的方法-1
如果清楚,请告诉我
答案 0 :(得分:0)
def simplify(l):
i = 0
while i < len(l):
s = set(map(abs,l[i]))
for x in xrange(len(l)):
if x == i: continue
if s <= set(map(abs,l[x])):
l.pop(i)
i -= 1
break
i += 1
这将删除任何列表,该列表是2d列表中另一个列表的子集。 (set&lt; =运算符实现为⊆)。