2017-11-29 17 views
-1

edgeListはリスト ネストされた辞書読解3

のリストには、私はこの作業が、私が望むよりも、その遅くを持っているのですか?私は試しましたが、構文に絡みついていました

+0

edgeListの抜粋で質問を更新しますか? –

+0

辞書を作成する理由は何ですか**?あなたはすでにあなたの既存のリスト*と同じインデックス*を取得しています。 'edgeList [rowIndex] [colIndex]'は 'colVal'にマップされます。 –

+0

Marijn、私には選択肢がありません - 結果はdictでなければならない機能に繋がっています – user3431083

答えて

1

このような理解が必要ですが、それははるかに高速であるとは思っていません。また、値のアクセスは、あなたが持っているリストと同じです:

edge_dict = {row: dict(enumerate(row_val)) for row, row_val in enumerate(edgeList)} 
+0

ありがとうございましたこれはいくつかのスピードアップでした – user3431083

1

これは非常に重要な点です。 には既に座標ペアから値までのマップがあります。 edgeListはその地図です:

edgeList[integer_value_for_row][integer_value_for_col] 

は値にマップされています。

あなたはとあなたの辞書を生成することができます:これは辞書に直接enumerate()の結果をマップ

{row_index: dict(enumerate(row)) for row_index, row in enumerate(edgeList)} 

。そのループをネストする必要はありません。

+0

私は選択肢がありません - 結果はそれがdictであることを必要とする関数 - – user3431083

+0

なぜその関数はdictを必要としますか?それはデータ構造が疎であることを期待していますか?それ以外のコードではリストにする必要があるのはなぜですか?疎な辞書を使用するように再調整できますか? –

+1

その機能とユースケースについてもっと詳しくお聞かせください。 –

関連する問題