python - 如何将 itertools.permutations ("0123456789") 的结果(在 python 中)转换为字符串列表

标签 python string list permutation itertools

在 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/

相关文章:

python - k8s/ python : How do I read a secret using the Kubernetes Python client?

Java:为什么我的列表包含不同的类型? (过滤列表)

python - 如何从python中的列表中删除重复项

python - .split() 和 .append 来自 .txt 文件的信息作为元组到新列表

python - 与 Django 的 'regroup' 模板标签等效的惯用 Python 是什么?

python - 在哪些情况下我可以在 python 中使用缩进?

xcode - 将 Swift 中 HTTP 请求返回的 NSData 转换为字符串

java - getBytes() 方法返回未知字节

javascript - 正则表达式不断寻找我想要与前一个字符匹配的字符

python - 在 Python 2.7 中运行的代码在 Python 3.5.1 中中断