我目前有一个列表,如
L = [['E2', 'C1', 'A1', 'B1', 'C2'], ['C1', 'D1', 'A1'], ['C1', 'C2']]
我的目标是将L [i]与L [i + 1]进行比较以制作组。 例如,L [2]是L [0]的子集,所以我会消除它。我的两个不同列表是L [0]和L [1]。
为此,如果我能以某种方式将列表列表分解为不同的列表,则可以通过迭代cmp(L[i], L[i+1])
轻松实现。通过不同的列表我的意思是,我将每个元素存储为单独的变量。 => L_1 = L [0],L_2 = L [1],L_3 = L [2]。
zip似乎只在两个列表之间做了一种映射。任何人都可以推荐一个功能吗?
答案 0 :(得分:0)
您可以映射列表列表以创建集列表。如果然后迭代该列表,则可以检查它们是否是彼此的子集
LSets = map(set, L)
filteredL = filter(lambda s: not any(s.issubset(s2) for s2 in LSets if s != s2), LSets)