我有一个列表,我想从中生成所有可能的子列表,其中缺少一个元素。
>>> a = [1, 2, 3, 4]
>>> something(a)
[2,3,4], [1,3,4], [1,2,4], [1,2,3]
答案 0 :(得分:5)
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)]
虽然请记住combinations
会返回一个生成器,所以如果你想要它以列表形式,或者如果你想查看它,你必须先将它转换成一个列表。
答案 1 :(得分:2)
对于每个列表索引i
,请使用i
之前的元素和i
之后的元素:
for i in range(len(a)):
yield a[:i] + a[i+1:]