假设我在 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')]
我理解(我认为)由于需要混合类型,我们需要元组而不是字符串,但是有什么方法可以解决这个问题以获取字符串吗?
提前致谢?
最佳答案
您可以使用字符串 join
在你得到的元组上运行,将它们缩减为字符串。 map
使这变得更加容易,它可以对列表中的每个元素应用相同的操作并返回已更改项目的列表。这是它的样子:
list(map(lambda x: ''.join(x), itertools.permutations(X)))
关于python-3.x - 在 python 中排列成列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58105621/