2016-11-16 2 views
0

をマッチングしながら、既存の2Dリストに要素を追加します。だから私は1つのリスト(A)を持っている位置

=[[1,open],[3,open],[4,closed],[5,closed],[6,open],[7,open],[8,open],[9,open],[10,open], 
[11,open],[12,open],[13,open],[14,open],[15,open],[16,open],[17,open],[18,open],[19,open]] 

今したい結果が最終的な2DリストCである:

[[1,open],[2,""],[3,open],[4,""],[5,""]] 

場合、すなわちその論理、A内の各数に対して、 Bに数字が存在し、Bの説明が「開いている」場合はCに複製され、そうでなければ番号と「」が返されます。 Bの数字は任意の順序で指定することができますので、1対1のマッピングはここでは機能しません。私はサイクルを通過しようとしましたが、これらのリストは非常に大きく、Aの要素を調べるたびにBのリスト全体を循環させる必要があります。

ありがとう

+0

'{[1、open]、[4、closed]、[5、closed]、[6、open]]'を '{1:open、3:open、 4:閉じた、5:閉じた、6:開いた}}。物事を楽にします。 –

+0

openが(ファイルを開く)組み込みのものではない場合は、それを "と同様に囲む必要があり、閉じておく必要があります。 – kabanus

答えて

0

Ahsanul Haqueが示唆しているように、辞書が役立ちます。さらに便利なのはdefaultdictです(デフォルトは「閉じた」と思います)。あなたが不慣れdefaultdictある場合

result = dict(((i,"open" if openHash[i] == "open" else "") for i in indices)) 

は、コレクションの一部です:私たちはdefaultdict openHashは、その名前と仮定。

EDIT:タプルの繰り返し可能性をオブジェクトのような任意のdictに変換する場合は、ちょうどdict(myTupleList)またはdefaultdict(lambda: 'closed',myTupleList)に変換します。

関連する問題