我有一个列表,希望从中生成所有缺少一个元素的子列表。
>>> a = [1, 2, 3, 4]
>>> something(a)
[[2,3,4], [1,3,4], [1,2,4], [1,2,3]]
from itertools import combinations
a = [1, 2, 3, 4]
result = combinations(a, 3)
print(list(result))
# [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
根据文档,组合“根据输入迭代的顺序以字典顺序发出”。出于您的目的,这意味着结果的第一项将缺少最后一个元素,然后第二项将缺少第二个最后一个元素,依此类推。如果您需要结果的第一项中缺少第一个元素,依此类推,则必须使用来将其反转reversed()
,如下所示:reversed(list(combinations(a, 3)))
。
另外,请记住会combinations
返回一个生成器,因此,如果要以列表形式显示它,或者要查看它,则必须先将其转换为列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句