2011-09-02 20 views
5

私は本当にPythonには新しく、これに関する情報は見つかりません。 I連想配列itemPythonで連想配列を変換するには?

item['id'] = 0 
item['title'] = 'python' 

を持って、私はアイテムの内容を検証したいが、私は関係なく、その意味の'title'のようにインデックス名を使用したくないが、ちょうどループのために持っているとアイテムのすべてのエントリを反復処理。そのようなもの

for a in range(0, len(item)): 
    print (item[a]) 

アイデアや提案はありますか?

答えて

16

Pythonでは、連想配列はdictionariesと呼ばれます。辞書を反復処理する

良い方法は.iteritems()を使用することです:あなたは値のみが必要な場合は

for key, value in item.iteritems(): 
    print key, value 

は、.itervalues()を使用します。

for value in item.itervalues(): 
    print value 

あなたは、Pythonや辞書についての詳細を学ぶため、 .iteritems()/itervalues()(イテレータを返す)とitems()/values()(リスト(配列)を返す)の違いに注意してください。

.iteritems()/.itervalues()のPython 3で

を除去し、対応する配列にitems()/values()/keys()戻りイテレータされています。

for key, value in item.items(): 
    print(key) 
    print(value) 
+6

注:Pythonの3で、これらは '' .items() 'と' .values()になって(と新人が選んだかもしれないがPython 3をダウンロードしてください)。 –

+0

@トーマス良い点、ありがとう。 Python 2は依然として多くのディストリビューションのデフォルトになっているようですので、今のところ答えを残しておきます。そして、イカネータとジェネレータとリストの違いを新入者が認識することが重要だと思います。 –

+1

ようこそ。私は、多くのユーザーがデフォルトのPythonがないWindows上にあるかもしれないと付け加えます。それがこの質問者に当てはまるかどうかは考えられませんが、検討する価値があります。 –

6

辞書を反復処理する3つの方法があります。

item = {...} 
for key in item: # alternatively item.iterkeys(), or item.keys() in python 3 
    print key, item[key] 

item = {...} 
for value in item.itervalues(): # or item.values() in python 3 
    print value 

item = {...} 
for key, value in item.iteritems(): # or item.items() in python 3 
    print key, value 
+0

ああ...私は答えのあなたの最初の例を忘れてしまった。それは 'dict'を反復することでキーが得られることを示しているので便利です。 +1 –

関連する問題