2014-12-11 51 views
0

输入:itertools产品产生大小的所有可能的串3的Python

pos_1= 'AVNMHDRW' 
pos_2= 'KNTHDYBW' 
pos_3= 'KVNGSDRB' 

试图从pos_3

我发现利用POS_1一个项目,一个来自POS_2,和一个所有可能的三胞胎m试图找出如何使用itertools.product(*),但我有点困惑

最终,我想创建一个列表(或发电机对象)的所有不同的可能性从一个pos_1然后一个来自pos_2,然后来自pos_3的一个

输出示例:

'AKK','ANV','WWB' 

POS_1代表一个位置等为POS_2和pos_3。

+0

不知道为什么的产品,你需要的,但你可以生成简单地作为'G =([V1,V2,V3]在POS_1 V1在POS_2 V2在pos_3 V3)' – Marcin 2014-12-11 00:45:23

回答

1

简单:

itertools.product(pos_1, pos_2, pos_3) 

这可以遍历;如果你想要一个列表,只需将它传递给list即可。

究竟是什么问题?

编辑:这将产生来自每个来源的项目的元组。如果你想加入他们回字符串,你可以做手工,当你遍历:

for a, b, c in itertools.product(pos_1, pos_2, pos_3): 
    do_something_with(a + b + c) 

或创建列表,你可以使用列表理解:

[a + b + c for a, b, c in itertools.product(pos_1, pos_2, pos_3)] 
+0

或者为了好玩,' map(''。join,itertools.product(pos_1,pos_2,pos_3))'' – 2016-07-27 12:08:32

0

可以做出这样的发电机使用发电机的表达:

g = (v1+v2+v3 for v1 in pos_1 for v2 in pos_2 for v3 in pos_3)