ちょうどPythonを始め、他のデータ構造、リスト、セットなどの中にdictを入れ子にしようとしています。私がdictを入れ子にしたとき(私がdictsのリストを作成した場合)個人の中のキーまたは値はもう何も言いません。これは設計上の特徴ですか、それとも私はそれを完全に果たしていますか?初心者のPythonの問題
答えて
これは絶対にPythonで行うことができます。 []
演算子は複数回使用できます。a
がリストの場合は、a[0]
が最初の要素です。最初の要素がdictである場合、a[0].keys()
でそのキーを見ることができ、次のような値を得ることができます:a[0]["here's a key"]
そして、このような辞書のキーをループするのと同じように:
for key in my_dict:
# get the value
val = my_dict[key]
# do something with it
あなたはそれを辞書であることを起こる場合は、リストの要素を使用することができます。
for key in a[0]:
# get the value
val = a[0][key]
# do something with it
あなたはリスト、dictsのリスト、または値であってもdictsのリストを作ることができますリスト(またはそれ以上のdicts)、かなり簡単に。それらを参照するには、値を反復するか、必要に応じて操作を連結します([]
)。
あなたが行うことができない唯一のことは、のキーと別のdictにリストまたはディクテーションを使用することです。 のうちの1つは、という辞書のキーは、の不変のでなければならないということです。数字はOK、文字列はOK、タプルはOKですが、リストと辞書はありません。
ここでdictsのリストを構築し、再びそれらの値を抽出する方法をお見せするために、対話型のコードのサンプルです:
# Here's a dictionary
a = { 'key1': 'value1', 'key2': 2 }
# Check it out
>>> type(a)
<type 'dict'>
# Print it:
>>> a
{'key1': 'value1', 'key2': 2}
# Look inside
>>> a['key1']
'value1'
# Here's another one
b = { 'abc': 123, 'def': 456 }
# Now let's make a list of them
c = [a, b]
# Check that out, too
>>> type(c)
<type 'list'>
# Print it:
>>> c
[{'key1': 'value1', 'key2': 2}, {'def': 456, 'abc': 123}]
>>> c[0]
{'key1': 'value1', 'key2': 2}
# Dig deeper
>>> c[0]['key1']
'value1'
これまでで最も速く、最も驚くべき答えです。これは完全な教育ではありません。本当にありがとう。 –
技術的には、辞書のキーは*不変*でなく*ハッシュ可能でなければなりません。たとえば、 'list'をサブクラス化して' __hash__'メソッドを追加すると、そのインスタンスをdictキーとして使うことができます。 – yak
@billbixby:StackOverflowへようこそ。 「ありがとうございました」は、「答えの左側にあるチェックボックスの概要をクリックすることで最もよく表現されます」(http://stackoverflow.com/faq#howtoask)。 – Johnsyweb
あなたが(そのことについてまたはネストされたもの)dictsを入れ子にしたら、あなたは外側のリストに必要なdictのインデックスを、次に必要なアイテムのインデックスを指定する必要があります。リストにカップルのdictsを持っていたのであれば、:
list_of_dicts = [{'a':1,'b':2,'c':3},{'d':4,'e':5,'f':6}]
を第二辞書の要素の「e」にアクセスするために、次のように入力します。list_of_dicts[1]['e']
x = [{"a":1},{"b":2}]
>>> x[1]["b"]
2
をいくつかのことに触れてするには、次の
リストに辞書を追加する。セットにリストを追加する
mylist = []
mylist.append({'key1': 'val1'})
。別個の辞書の
myset = set()
myset.add({'key1': 'val1'}) # Error - dicts are mutable, therefore not hashable.
保持トラック。要素を取得
mydicts = set([id(d) for d in mylist])
。
# With Lists
mylist[0]['key1']
# With Sets
mydicts[0] # Error - sets do not support indexing.
私はそれを行う方法を忘れてではなく、しばらく続けるので、私は、何度もこの問題に遭遇してきました私は覚えています。
あなたが探しているのはおそらくインデックス[]
です。インデックスは0から始まり、リストの長さから始まります。
コードは次のようになります。
print list_name[0]
印刷機能は必要ありません。角括弧内の0はインデックス番号です。それをあなたが望む任意の番号に変更することができます。私はこれ以上のように見えるよりも、ループのために使用しています:
for i in range(10): print list_name[i]
もう一度印刷機能は必要ではなく、range(10)
を自由に変更することができます。
希望すると便利です。
- 1. Pythonの初心者@patchデコレータ問題
- 2. マルチテクスチャの問題(初心者)
- 3. インラインアセンブラ初心者の問題
- 4. Redis:初心者の問題
- 5. Zend Sessions問題(初心者)
- 6. Pythonの初心者
- 7. 初心者のJavaScriptの問題
- 8. 初心者のPerlの問題
- 9. 初心者の開発:findViewByIdの問題
- 10. 初心者のMySQLデータベースモデリングの問題
- 11. Node、Mongo、Mongooseの初心者の問題
- 12. GroovyのGrails初心者の問題
- 13. WPFストーリーボード初心者の問題
- 14. 初心者Javascriptを:jQueryの「トグル」問題
- 15. Pythonのエラー[初心者]
- 16. EclipseLink - Oracleストアドプロシージャコール初心者問題
- 17. DXGetErrorString初心者の質問
- 18. 初心者の質問:Wakelocks
- 19. 初心者のCSS質問
- 20. 初心者 - PHPの質問
- 21. 初心者mod_rewriteの質問
- 22. Mongo初心者の質問
- 23. DHTML初心者の質問
- 24. 初心者初心者アヤックスへのヒント
- 25. 初心者の質問 - データの問題を見つける
- 26. VBA疑問初心者
- 27. 初心者Cポインタ質問
- 28. php初心者質問:クラス
- 29. C++初心者質問:ThreadProc
- 30. は初心者質問C#
+1「基本」タグの画期的な使用。 – Azodious
ようこそ!私たちが手助けできるように、あなたが試したことのあなたの記事とあなたが遭遇したエラーといくつかのコードを含めてください。あなたはもっと良い答えを得るでしょう。 –
ネストされたdicts(または他のオブジェクト)はアクセス可能です。あなたがコマンドラインでそれをプレイすると、おそらくそれを理解することができます。がんばろう! – monkut