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,}
4

2 に答える 2

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は既に python で dict クラスを参照するために使用されているため、変数名として使用することは避けてください。

于 2012-05-14T06:15:14.520 に答える
1

元のリストを使用して、辞書を正しい順序で印刷することもできますが、辞書を最終​​的にどうするつもりなのかはわかりません。

for categ in category_list:
     print categ, dict[categ]
于 2012-05-14T06:23:48.117 に答える