2016-12-18 17 views
0

私はこの種の問題に直面したのは初めてです。あなたたちが私を助けてくれることを願っています。辞書の順序問題

基本的に私が持っている:

months= {"01": "January","02": "February","03": "March","04": "April","05": "May","06": "June","07": "July","08": "August","09": "September","10": "October","11": "November","12": "December"} 
x=[] 
my_xticks = [] 
for key in months.keys(): 
    x.append(int(key)) 
for value in months.values(): 
    my_xticks.append(value) 

辞書では、今年の毎月。しかし私がxyのリストを借りていたとき、私は彼らがその順序を変えたのを見ました。

は、その後、私はこのコードのグローバルフレームに(pythontutor.com)を介して確認し、この見た:

Global Frame of my code

がどのように私は私のリストに正しい順序で追加します(追加)し、それを変更することができますが?

+0

辞書は、自然にソートされていないされているたびに同じことを繰り返すことができ

import collections months_data = [("01", "Jan"), ("02", "Feb"), ...] months = collections.OrderedDict(months_data) 

のように、順序を保持した構造でデータを宣言します。キーを並べ替えて(months.keys()) 'それを注文する。 – Torxed

答えて

2

collections.OrderedDictを使用してください。通常の辞書はキーの順序を保証しません。 Orderがすでに失われているため、orderedDictのコンストラクタに既存の辞書を渡さないでください。代わりに、今、あなたは順序が

+0

(collections.OrderedDict)は問題を解決していません – Nate

+0

@Nate:編集済みの回答、うまくいきます –

関連する問題