创建列表副本并删除元素

shu*_*alo 1 python list

我想写这样的东西

S = [ 0, 1, 2 ]
F = [ S.without(i) for i in range(0,len(S)) ]
print F
Run Code Online (Sandbox Code Playgroud)

和Python推出

[[0,1],[0,2],[1,2]]

并没有在网上参考中找到这样的东西.你能帮助我吗?

Fel*_*ing 6

Python提供itertools.combinations,它完全符合您的要求:

>>> import itertools
>>> s = [0,1,2]
>>> list(itertools.combinations(s, len(s) - 1))
[(0, 1), (0, 2), (1, 2)]
Run Code Online (Sandbox Code Playgroud)

更好的是,它返回一个生成器,因此您可以轻松地迭代所有组合而无需使用太多内存.