排列成python列表的排列

问题描述 投票:1回答:2

说我在Python中有随机字符串:

>>> X = ['ab', 'cd', 'ef']

我想做的是创建字符串(不是元组)的所有排列,即:

['abcdef', 'abefcd', 'cdabef', 'cdefab', 'efabcd', 'efcdab']

[list(itertools.permutations(X))输出:

[('ab', 'cd', 'ef'), ('ab', 'ef', 'cd'), ('cd', 'ab', 'ef'), ('cd', 'ef', 'ab'), ('ef', 'ab', 'cd'), ('ef', 'cd', 'ab')]

我理解(我认为),由于需要混合类型,我们需要元组而不是字符串,但是有什么方法可以解决此问题以获得字符串?

非常感谢?

python-3.x permutation itertools
2个回答
0
投票

您可以在获得的元组上使用字符串join函数,将其简化为字符串。使用join可以使操作变得更加容易,它可以对列表中的每个元素应用相同的操作,并返回更改项的列表。这是它的样子:

map

0
投票

在消耗到置换迭代器时,使用map来加入置换元组。

list(map(lambda x: ''.join(x), itertools.permutations(X)))
© www.soinside.com 2019 - 2024. All rights reserved.