在 Python 中,我使用 list(itertools.permutations("0123456789"))
,并且我收到(我如预期)一个单选字符串元组列表。
有没有办法将该结果转换为字符串列表,而无需遍历所有 3628800 个项目?
最佳答案
如果您想在不迭代整个列表的情况下执行此操作,而是根据需要懒惰地执行此操作,则可以使用 itertools.imap
:
itertools.imap(lambda x: "".join(x), itertools.permutations("0123456789"))
(请注意,我没有在
list()
的结果上使用 permutations
,因此它尽可能地懒惰)或者,正如评论中所指出的,一个简单的生成器表达式也可以在这里工作:
("".join(x) for x in itertools.permutations("0123456789"))
itertools.imap
具有额外的好处,即能够使用方便的语法将相同的函数应用于许多可迭代对象(只需将它们添加为后续参数),但这对于这种特定用法不是必需的,因为我们只有一个可迭代对象
关于python - 如何将 itertools.permutations ("0123456789") 的结果(在 python 中)转换为字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5343877/