python-3.x - 在 python 中排列成列表

标签 python-3.x permutation python-itertools

假设我在 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/

相关文章:

delphi - 创建未知数量的循环

python - 按键分组字典并找到最大值

python - 使用 itertools 产品生成随机数

python - 将类似dict的字符串转换为JSON

python - 使用 WxPython 播放动画

c++ - 非重复排列

python - 为什么python的itertools排列有很多重复的元素?

python - 查询多个 between 子句

python - 在 Python 中绘制 4 维连续线

c++ - 是否有任何排列算法?