2017-09-20 16 views
1

pythonの質問はこちら。リストのリストから2次元のリストを返す関数を作りたいと思います。私はitertoolsでこの機能を見つけることができませんでした。 AB用リストのリストから2次元リストを返すPython関数

Possibe入力=リストAAまたはAB以下に示すように(異なる長さ)

aa = [[230, 115, 90, 264], [12, 9, 5], [-1], ['on', 'off']] 
ab = [[230, 115, 90, 264], ['on', 'off']] 

出力がなければならない:AA用

[[230, 'on'], 
[230, 'off'], 
[115, 'on'], 
[115, 'off'], 
[90, 'on'], 
[90, 'off'], 
[264, 'on'], 
[264, 'off']] 

出力は次のようになります

[[230, 12, -1, 'on'], 
[230, 12, -1, 'off'], 
[230, 9, -1, 'on'], 
[230, 9, -1, 'off'], 
.... 
[264, 5, -1, 'off']] 
+3

あなたはitertools' 'で見ましたか難しいですか? 'list(itertools.product(* ab))'? –

+0

@Chris_重複したターゲットを覚えていますか? –

+0

@ Jean-FrançoisFabreまだ見ていない –

答えて

1

あなたが求めているのは、いくつかのイテラブルのcartesian productです:

import itertools 
import pprint 

aa = [[230, 115, 90, 264], [12, 9, 5], [-1], ['on', 'off']] 
ab = [[230, 115, 90, 264], ['on', 'off']] 

for iterable in [aa, ab]: 
    pprint.pprint(list(itertools.product(*aa))) 

結果:

[(230, 12, -1, 'on'), 
(230, 12, -1, 'off'), 
(230, 9, -1, 'on'), 
(230, 9, -1, 'off'), 
(230, 5, -1, 'on'), 
(230, 5, -1, 'off'), 
(115, 12, -1, 'on'), 
(115, 12, -1, 'off'), 
(115, 9, -1, 'on'), 
(115, 9, -1, 'off'), 
(115, 5, -1, 'on'), 
(115, 5, -1, 'off'), 
(90, 12, -1, 'on'), 
(90, 12, -1, 'off'), 
(90, 9, -1, 'on'), 
(90, 9, -1, 'off'), 
(90, 5, -1, 'on'), 
(90, 5, -1, 'off'), 
(264, 12, -1, 'on'), 
(264, 12, -1, 'off'), 
(264, 9, -1, 'on'), 
(264, 9, -1, 'off'), 
(264, 5, -1, 'on'), 
(264, 5, -1, 'off')] 
[(230, 12, -1, 'on'), 
(230, 12, -1, 'off'), 
(230, 9, -1, 'on'), 
(230, 9, -1, 'off'), 
(230, 5, -1, 'on'), 
(230, 5, -1, 'off'), 
(115, 12, -1, 'on'), 
(115, 12, -1, 'off'), 
(115, 9, -1, 'on'), 
(115, 9, -1, 'off'), 
(115, 5, -1, 'on'), 
(115, 5, -1, 'off'), 
(90, 12, -1, 'on'), 
(90, 12, -1, 'off'), 
(90, 9, -1, 'on'), 
(90, 9, -1, 'off'), 
(90, 5, -1, 'on'), 
(90, 5, -1, 'off'), 
(264, 12, -1, 'on'), 
(264, 12, -1, 'off'), 
(264, 9, -1, 'on'), 
(264, 9, -1, 'off'), 
(264, 5, -1, 'on'), 
(264, 5, -1, 'off')] 
+0

ありがとうございました!リスト(itertools.product(aa))を試しましたが、違いがあります! –

関連する問題