2016-12-18 11 views
-3

私は、次の2タプルを分割して2つのタプルと1のタプルを含むリストを平坦化

[['G', 'G', 'R', 'G'], 
['G', 'U', 'R', 'G'], 
['U', 'G', 'R', 'G'], 
['U', 'U', 'R', 'G']] 

のようにすべての可能な組み合わせに

[['G', 'U'], ['G', 'U'], 'R', 'G'] 

のようなリストを作るとのトラブルを抱えていますPythonで。それについてどうすればいいですか?

+1

あなたのためにコードを記述していただきたいようです。多くのユーザーは、苦痛を伴うコーダーのコードを作成したいと考えていますが、通常、ポスターがすでに自分で問題を解決しようとしたときにのみ役立ちます。この努力を示す良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、予想される出力、実際に得られる出力(コンソール出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性のある回答が増えます。 [FAQ](http://stackoverflow.com/tour)と[How to Ask](http://stackoverflow.com/help/how-to-ask)を参照してください。 –

+0

また、データリストが矛盾しています - a)文字列のリストとb)文字列が混在しています。これは実際のデータですか、または文字列を1つの文字列を含むリストとして扱うのでしょうか? –

+0

これは実際のデータで、私は以下のitertoolsを試していましたが、リスト名の前に "*"引数を付けずに、私が期待したものを私に与えてくれませんでした。私はここで新しいので、ガイドラインのおかげで! – Lejoon

答えて

1

あなたはitertools.product()を使用することができます。

lst = [['G', 'U'], ['G', 'U'], 'R', 'G'] 
from itertools import product 
[x for x in product(*lst)] 

#[('G', 'G', 'R', 'G'), 
# ('G', 'U', 'R', 'G'), 
# ('U', 'G', 'R', 'G'), 
# ('U', 'U', 'R', 'G')] 
+0

ありがとう、私はitertoolsを試してみましたが、それは私が望んだものではなく、この出力よりもむしろ私に与えなかった: #[(['G'、 'U'])、(['G'、 'U'] )、(['R']、)、(['G']、)] 私は*、初心者をPythonで使用しませんでした。すべての助けをありがとう! – Lejoon

0

あなたは簡単にitertools.productを使用してこれを行うことができます。それはまさにあなたが描いていることです。

>> import itertools 
>> l = [['G', 'U'], ['G', 'U'], 'R', 'G'] 
>> i = itertools.product(*l) 
>> list(i) 
[('G', 'G', 'R', 'G'), ('G', 'U', 'R', 'G'), ('U', 'G', 'R', 'G'), ('U', 'U', 'R', 'G')] 
+0

ありがとう、私はitertoolsを試してみましたが、それは私が望んだものではなく、この出力よりもむしろ私に与えてくれませんでした: #[(['G'、 'U'])、(['G'、 'U'] )、(['R']、)、(['G']、)] 私は*、初心者をPythonで使用しませんでした。すべての助けをありがとう! – Lejoon

関連する問題