2016-10-12 19 views
-2

私はPythonが初めてです。私は入れ子になった辞書から複数のリストを抽出したい。私はこのリンク(Get nested arrays out of a dictionary)に従ってくれました。入れ子になった辞書から複数のリストを抽出する

私は辞書を持っている場合は、言う:

{"alpha": {2: {1: 1.1, 2: 4.1}, 3: {1: 9.1, 3: 4.1, 6: 5.1}, 
      5: {1: 9.2, 3: 4.4, 6: 5.4}, 9: {1: 9.0, 3: 4.0, 6: 5.5}}, 
"beta": {2: {1: 4.0, 2: 7.9}, 3: {1: 24, 3: 89, 6: 98} , 
      5: {1: 9, 3: 4, 6: 5}, 9: {1: 9.2, 3: 4.9, 6: 5.0}}} 

個々のリストは(alpha,beta,..), (2,3,5,9), (1,2,4,9), (1.1,4.1)を言うように、私はこれらすべてを抽出するにはどうすればよいなど

私は(アルファ、ベータ版のリストだけを得ることができますしようとしたとき、..)とアルファとベータに関連する値のリスト。値のリストは、それがリストの中にあるので、再び辞書になります。私は前の操作で私にリストを与えたので、dict.values()をさらに行うことはできません。したがって、Pythonはエラーをスローします。これらのすべての値とキーのリストを個別に作成するにはどうすればよいですか?私は小数点とそれに関連するキーのリストを作りたいと思っています。

+1

問題を解決するためのコードを追加してください。 –

+0

これは少し不明ですが、辞書の各レベルのキーのリストを作成しようとしていますか?全体のネストレベルは一貫していますか? – Lost

+0

"言うことができる"という辞書が正しく作られていますか? '(1,2,3,9)'とは何ですか?それはリストではなく、タプルです。 –

答えて

1

dict.keys()にアクセスするか、dict.values()にアクセスして下のレイヤーを取得して、それぞれのレイヤーを取得できます。 1レベルを深くダイブする場合は、parent.values()を繰り返し、各要素にdict.keys()を入力してください。最後の層は最終的にはdict.values()です。

print data.keys()            # top level keys 
>>> ['alpha', 'beta'] 

print [x.keys() for x in data.values()]       # second level keys 
>>> [[9, 2, 3, 5], [9, 2, 3, 5]] 

print [y.keys() for x in data.values() for y in x.values()]  # third level keys 
>>> [[1, 3, 6], [1, 2], [1, 3, 6], [1, 3, 6], [1, 3, 6], [1, 2], [1, 3, 6], [1, 3, 6]] 

print [y.values() for x in data.values() for y in x.values()] # third level values 
>>> [[9.0, 4.0, 5.5], [1.1, 4.1], [9.1, 4.1, 5.1], [9.2, 4.4, 5.4], [9.2, 4.9, 5.0], [4.0, 7.9], [24, 89, 98], [9, 4, 5]] 

dictsは性質上順序付けされていないことに注意してください。

+0

Nils Wernerありがとうございます。それは動作します。しかし、これらのリストをある名前、例えばu11 = [1.1、4.1]に割り当てたいとしたらどうでしょうか?私はそれらをプロットしたい。私は膨大なデータを扱うため、キーと値のリストを動的にループして割り当てる必要があります。これらをリストに割り当てる簡単な方法はありますか? – sivasudhan

+0

あなたは何を意味するのですか? 'print'の代わりに' u11 = 'と書いてください。 –

+0

辞書を常にインデックスで参照できます。つまり、dictionary_name ['alfa'] [9] [6]は5.5になります。あなたはいつもネストされた辞書を作成することができ、それは本当に強力です:-) dictionary_name ['alpha'] [2] .values() –

関連する問題