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

Python中,我使用list(itertools.permutations(“0123456789”)),我收到(我按预期)一个单元字符串元组的列表.

有没有办法将该结果转换为字符串列表,而不迭代所有3628800项?

解决方法:

如果你想在不迭代整个列表的情况下这样做,而是根据需要懒洋洋地进行,可以使用itertools.imap:

itertools.imap(lambda x: "".join(x), itertools.permutations("0123456789"))

(注意我在这里的排列结果上没有使用list()所以它尽可能地懒惰)

或者,正如评论中所指出的,一个简单的生成器表达式也适用于此:

("".join(x) for x in itertools.permutations("0123456789"))

itertools.imap的另一个好处是能够使用方便的语法在许多迭代中应用相同的函数(只需将它们作为后续参数添加),但这对于这个特定的用法来说并不是必需的,因为我们只有一个可迭代的

上一篇:迭代器与生成器 中


下一篇:『深入学习 Spring Boot』——Bean 实例化流程