2017-02-07 5 views
2

私は既知のタンパク質配列でシャッフル保存モチーフから配列を作成しようとしています。例えば配列位置に基づいてリスト間の組み合わせを作成する

seq1 = ['ABC', 'DEF', 'GHI'] 
seq2 = ['JKL', 'MNO', 'PUR'] 
seq3 = ['QRS', 'TUV' 'WXY'] 

私が探しています結果は:3^3の組み合わせの合計

ABC DEF PUR 
ABC DEF WXY 
ABC MNO GHI 
ABC MNO WXY 
ABC MNO PUR 
JKL MNO GHI 
JKL MNO WXY 
JKL DEF GHI 
JKL DEF WXY 
JKL DEF PUR 
... 

itertoolsモジュール(combinationsproductなど)で関数を使用してみたところ、目的の結果は得られませんでした。私が正しく理解し

答えて

4

場合

私は、私が行方不明だということを非常に明白な何かがあるかもしれないプログラミングに新しいです...、あなたは、各リストのグループ化された要素の直積を探しています。そのためには、シーケンスを一緒に圧縮した後にitertools.productを使用することができます。

In[1]: from itertools import product, izip 
In[2]: seq1 = ['ABC', 'DEF', 'GHI'] 
In[3]: seq2 = ['JKL', 'MNO', 'PUR'] 
In[4]: seq3 = ['QRS', 'TUV', 'WXY'] 
In[5]: list(product(*izip(seq1, seq2, seq3))) 
Out[5]: 
[('ABC', 'DEF', 'GHI'), 
('ABC', 'DEF', 'PUR'), 
('ABC', 'DEF', 'WXY'), 
('ABC', 'MNO', 'GHI'), 
('ABC', 'MNO', 'PUR'), 
('ABC', 'MNO', 'WXY'), 
('ABC', 'TUV', 'GHI'), 
('ABC', 'TUV', 'PUR'), 
('ABC', 'TUV', 'WXY'), 
('JKL', 'DEF', 'GHI'), 
('JKL', 'DEF', 'PUR'), 
('JKL', 'DEF', 'WXY'), 
('JKL', 'MNO', 'GHI'), 
('JKL', 'MNO', 'PUR'), 
('JKL', 'MNO', 'WXY'), 
('JKL', 'TUV', 'GHI'), 
('JKL', 'TUV', 'PUR'), 
('JKL', 'TUV', 'WXY'), 
('QRS', 'DEF', 'GHI'), 
('QRS', 'DEF', 'PUR'), 
('QRS', 'DEF', 'WXY'), 
('QRS', 'MNO', 'GHI'), 
('QRS', 'MNO', 'PUR'), 
('QRS', 'MNO', 'WXY'), 
('QRS', 'TUV', 'GHI'), 
('QRS', 'TUV', 'PUR'), 
('QRS', 'TUV', 'WXY')] 
関連する問題