2017-06-04 7 views
2

次のpythonコードは、私に与えられた値と異なる組み合わせを与えてくれます。このpythonコードの出力をリストに変更しますか?

import itertools 

iterables = [ [1,2,3,4], [88,99], ['a','b'] ] 
for t in itertools.product(*iterables): 
    print t 

出力: -

(1, 88, 'a') 
(1, 88, 'b') 
(1, 99, 'a') 
(1, 99, 'b') 
(2, 88, 'a') 

のように。

出力がリストのように見えるように、このコードを変更する方法を教えてください。

188a 
188b 
199a 
199b 
288a 
+2

出力がリストのように見えません。おそらく、出力はタプルのように見えるべきではなく、単純に*結合された*ことを意味していたでしょうか? –

答えて

5

あなたは結果に参加、その後、数値を文字列に変換する必要があります:

print ''.join(map(str, t)) 

あなたがいる場合に変換することを避けることができ入力を文字列で始めるようにしました。

iterables = [['1', '2', '3', '4'], ['88', '99'], ['a', 'b']] 
for t in itertools.product(*iterables): 
    print ''.join(t) 

あなたが望むすべてが一緒に印刷に値である(それ以外は彼らと何もしない)場合は、関数(from __future__ import print_function Pythonの2機能スイッチを使用してやPython 3を使用して)としてprint()を使用します。

from __future__ import print_function 

iterables = [[1, 2, 3, 4], [88, 99], ['a', 'b']] 
for t in itertools.product(*iterables): 
    print(*t) 
5

あなたはこれを試すことができます。

iterables = [ [1,2,3,4], [88,99], ['a','b'] ] 

new_list = [''.join(map(str, i)) for i in itertools.product(*iterables)] 
+0

マップ内の 'list'はなぜですか? 'map(str、i)'を実行してください。 – rassar

+0

@rassar:Python 2では、Python 3ではそうではありませんでした( 'str.join()'はリスト入力でより速く動作します)。 –

関連する問題