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

2024-09-28 01:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我最近学习了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']

任何帮助都将不胜感激


Tags: 目标result单词例子catprintcakeitertools
2条回答

您实际上是在寻找^{}而不是^{}

>>> print(["".join(a) for a in permutations(["cat", "cake", "apples"], 2)])
['catcake', 'catapples', 'cakecat', 'cakeapples', 'applescat', 'applescake']

这应该管用

from itertools import permutations
print ["".join(a) for a in permutations(["cat", "cake", "apples"], 2)]
#['catcake', 'catapples', 'cakecat', 'cakeapples', 'applescat', 'applescake']

这是因为in combinations顺序不重要,in permutations顺序重要,例如:

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

相关问题 更多 >

    热门问题