Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 把单词加在一起,形成所有可能的组合_Python_Iteration_Itertools - Fatal编程技术网

Python 把单词加在一起,形成所有可能的组合

Python 把单词加在一起,形成所有可能的组合,python,iteration,itertools,Python,Iteration,Itertools,因此,我最近学习了python,并试图获得多个单词的所有不同组合。我一直在研究itertools,但未能达到预期的效果。用一个实际的例子更容易解释。这就是我努力实现的目标: somestring = "cat, cake, apples" result = itertools magik print result >>> catcake, catapples, cakecat, cakeapples, applescat, applescake 到目前为止,这是我最接近实现

因此,我最近学习了python,并试图获得多个单词的所有不同组合。我一直在研究itertools,但未能达到预期的效果。用一个实际的例子更容易解释。这就是我努力实现的目标:

somestring = "cat, cake, apples"
result = itertools magik
print result

>>> catcake, catapples, cakecat, cakeapples, applescat, applescake
到目前为止,这是我最接近实现这一目标的一次,但它并没有返回所有可能的迭代:

from itertools import combinations
print ["".join(a) for a in combinations(["cat", "cake", "apples"], 2)]

>>> ['catcake', 'catapples', 'cakeapples']
任何帮助都将不胜感激。

这应该行得通

from itertools import permutations
print ["".join(a) for a in permutations(["cat", "cake", "apples"], 2)]
#['catcake', 'catapples', 'cakecat', 'cakeapples', 'applescat', 'applescake']
这是因为在组合中顺序无关紧要,在排列中无关紧要,例如:

'(cat,cake)' == '(cake, cat)' # Combinations
'(cat,cake)' != '(cake, cat)' # Permutations
这应该行得通

from itertools import permutations
print ["".join(a) for a in permutations(["cat", "cake", "apples"], 2)]
#['catcake', 'catapples', 'cakecat', 'cakeapples', 'applescat', 'applescake']
这是因为在组合中顺序无关紧要,在排列中无关紧要,例如:

'(cat,cake)' == '(cake, cat)' # Combinations
'(cat,cake)' != '(cake, cat)' # Permutations

您实际上在寻找的不是:


您实际上在寻找的不是:


你试过用排列代替组合吗?你试过用排列代替组合吗?我想几分钟前我离这个答案只有一英寸远。非常感谢,这工作做得很好!几分钟前,我想我离这个答案只有一英寸远。非常感谢,这工作做得很好!