我有一个嵌套列表:
[['spam', 'eggs'],
['spam', 'eggs', '111'],
['spam', 'eggs', 'foo'],
['spam', 'eggs', '111', 'bar'],
['spam', 'eggs', 'foo', 'bar']]
我需要一种算法来获取较短子列表的索引,其中所有元素都包含在较长的子列表中。在此示例中,算法应返回:
[0, 1, 2]
如有任何帮助,我们将不胜感激!
最佳答案
一种方法可能是在同一列表中使用双 for
循环,并使用 .issubset
检查那些不等于 index
的情况:
my_list = [['spam', 'eggs'],
['spam', 'eggs', '111'],
['spam', 'eggs', 'foo'],
['spam', 'eggs', '111', 'bar'],
['spam', 'eggs', 'foo', 'bar']]
indexes = []
for index1, item1 in enumerate(my_list):
for index2, item2 in enumerate(my_list):
if index1 != index2:
if set(item1).issubset(item2):
indexes.append(index1)
break
print(indexes)
结果:
[0, 1, 2]
关于python - 过滤掉较短的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50382729/