繁体   English   中英

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

[英]How to turn the result (in python) of itertools.permutations(“0123456789”) into list of strings

在Python中,我正在使用list(itertools.permutations("0123456789")) ,并且(如预期的那样)接收到一个由单个字符串组成的元组列表。

有没有一种方法可以将结果转换为字符串列表,而无需遍历所有3628800项?

如果您不想重复遍历整个列表 ,而是懒惰地按需进行操作,则可以使用itertools.imap

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

(请注意,我不在这里使用permutations结果的list() ,所以它尽可能地懒惰)

或者,如注释中所指出的,一个简单的生成器表达式也可以在这里工作:

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

itertools.imap的另一个好处是,可以使用方便的语法将相同的函数应用到许多可迭代对象上(只需将它们作为后续参数添加),但是对于这种特殊用法,这是不必要的,因为我们只有一个可迭代对象

将其转换为列表会遍历整个过程。 您可以将其转换为具有列表理解的列表,这比将其转换为列表然后遍历列表的所有项目要好:

[''.join(item) for item in itertools.permutations('0123456789')]

如果你不需要用列表来结束,生成器表达式就足够了(替换[]()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM