2012-05-14 13 views
1

リストの値をキーとして辞書を作成しています。今私はリストの値と同じ順序で辞書のキーを取得したい。以下のコードを見つけてください:辞書のキーとしてリストの値をキーとして使用

dict = {} 

category_list = [u'Customer', u'Consumers', u'OpenERP Partners', u'Basic Partner', u'Retailers', u'Supplier'] 

for category in category_list: 
    dict[category] = 0.0 

print "dict--->", dict 

私のように出力を取得しています:

dict--->{u'Customer': 0.0, u'Consumers': 0.0, u'Basic Partner': 0.0, u'Supplier': 0.0, u'Retailers': 0.0, u'OpenERP Partners': 0.0} 

しかし、私はリストが定義されているのと同じ順序で辞書のキーにしたいです。出力は次のようになります。

dict--->{u'Customer': 0.0, u'Consumers': 0.0, u'OpenERP Partners': 0.0, u'Basic Partner': 0.0, u'Retailers': 0.0, u'Supplier': 0.0,} 
+3

辞書は順序付けられていません。 –

+3

@DanielRoseman Sigh?それは必要ですか?人々は嫌がらせではなく、援助のためにここに来ます。あなたはQを投票することもできます。 snarkよりも良いメッセージです。 –

答えて

5

OrderedDictを使用する必要があります。たとえば:

>>> import collections 
>>> d = collections.OrderedDict() 
>>> category_list = [u'Customer', u'Consumers', u'OpenERP Partners', u'Basic Partner', u'Retailers', u'Supplier'] 
>>> for category in category_list: 
... d[category] = 0.0 
... 
>>> print d 
OrderedDict([(u'Customer', 0.0), (u'Consumers', 0.0), (u'OpenERP Partners', 0.0), (u'Basic Partner', 0.0), (u'Retailers', 0.0), (u'Supplier', 0.0)]) 

はまた、dictはすでにdictのクラスを参照するために、Pythonで使用されているので、あなたは、変数名としてそれを使用しないでください。

1

辞書を正しく印刷するために、元のリストを使用することはできますが、私はあなたが辞書を使って何をすべきかはわかりません。

for categ in category_list: 
    print categ, dict[categ] 
関連する問題