2017-09-21 25 views
0
に結果の結果と

をリストを作成し、私はPerlとCに複数のリストを反復処理するとPython

を働いていた前に、私は簡単にはPythonで見極めることができ、簡単な問題に実行しています、Pythonで新しいです専門家。

私はリストを持っています、リスト上の値はランダムにすることができます。

list_a = [True, False] 
list_b = [False, True] 
list_c = [True] 

複数のリストを繰り返し処理する必要があります。私は研究して、次の作業を得ました。

output_list = [] 

for i,j,k in map(None, list_a, list_b, list_c): 

     output_list.append([i,j,k]) 

しかし、私は挑戦直面しています課題は、このような何かを出力を生成して出力した後です:[(True,False,True), (False,True, None)]

output_list [0] = [TRUE、FALSE TRUE] output_list [1] = [偽、真、なし]

期待が戻ってくるはずです。私はoutput_list得出力の見当もつかない[0] = [True_list_a、False_list_b、True_list_c] output_list [1] = [False_list_a、True_list_b、None_list_c]

output_listはlist_a又はlist_b又はlist_cです。

対応するlist_a、list_b、list_c要素を持つoutput_listを作成して、関数に送信できるようにする方法。

これを見つける方法はありますか?前もって感謝します。

import itertools 
output_list = list(itertools.chain(list_a, list_b, list_c)) 
+1

おそらく、あなたは、この(コメントとの点で「... output_listはそれがリストするの要素についての手掛かりを持っていなければならない」)のようなものを望んでいました'ouput_list'の内容は –

+0

のように見えますか? – RomanPerekhrest

+0

すばやい返信をありがとう、output_listはlist_a、list_b、list_cのようなどのリストの要素についての手がかりを持つべきです。私は現在、list_a、list_b、list_cのヒントを得るためにoutput_listを作成する方法を知りません。どのようにpythonicの方法でそれを作る!? – Sandy

答えて

1

ただの推測:私はあなたを推測してい

+0

Romanに感謝、これはPython2.7で動作しますか? tupelインデックスが範囲外です。 – Sandy

+0

@Sandy、ようこそ、Python 2.7のために 'itertools.zip_longest'を' itertools.izip_longest'に置き換えてください。 – RomanPerekhrest

+0

ありがとう、私はあなたがizip_longestと言ったように平等な関数を見つけ出しました。しかし、アウトリストは[{'list_a':False、 'list_b':None、 'list_c':False} 'のみを返します。私は何かが欠けている? – Sandy

0

はそのような何かをしたいです。

import itertools 

list_a = [True, False] 
list_b = [False, True] 
list_c = [True] 

output_list = [{'list_a':t[0], 'list_b':t[1], 'list_c':t[2]} 
       for t in itertools.zip_longest(list_a, list_b, list_c)] 

print(output_list) 

出力:

[{'list_a': True, 'list_b': False, 'list_c': True}, {'list_a': False, 'list_b': True, 'list_c': None}] 
+0

詳しくは質問を編集しましたので参考にしてください。 – Sandy