Jim*_*rth 14 python permutation
注意:我正在使用python工作.
例如,给出一个列表:
list = ['a','b','c','d','e','f','g','h','i','j']
Run Code Online (Sandbox Code Playgroud)
我想生成一个包含所有可能的3项组合的列表列表:
['a','b','c'],
['a','b','d'],
['a','b','e']
Run Code Online (Sandbox Code Playgroud)
排列不应在排列中使用相同的项目两次,但顺序很重要并且表示应包括的不同排列,例如,
['a','b','c'],
['a','c','b']
Run Code Online (Sandbox Code Playgroud)
两者都应该包括在内.
"3"是我想要生成的排列的神奇长度,但我不会小看任意长度排列的解决方案.
谢谢你的帮助!
小智 14
假设您使用的是python 2.6或更高版本:
from itertools import permutations
for i in permutations(your_list, 3):
print i
Run Code Online (Sandbox Code Playgroud)
Ima*_*anB 13
如果您需要长度为 n 的列表(其中 n 可能大于列表元素)以及重复元素的所有组合:
import itertools
list(itertools.product([-1,1], repeat=3))
Run Code Online (Sandbox Code Playgroud)
[(-1,-1,-1),(-1,-1,1),(-1,1,-1),(-1,1,1),(1,-1,-1) , (1, -1, 1), (1, 1, -1), (1, 1, 1)]
想象一个笛卡尔积,如 [-1,1]x[-1,1]x[-1,1]