Warum wird mein Python-Diktat ungeordnet? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Warum bestellt Python mein Wörterbuch so? [Duplikat 3 AntwortenWörterbücher: Wie werden Schlüssel / Werte in derselben Reihenfolge wie deklariert gehalten? 12 answers

Ich benutze dies, um eine Darstellung von% der Namen zu erstellen, die über einen Zeitraum von Jahren mit einem bestimmten Buchstaben beginnen. Beim Plotten (und Drucken) meines Diktats (letter_d) sind die Tasten ungeordnet und nicht sequenziell, wie sie dem Diktat hinzugefügt werden. Gibt es eine Möglichkeit, dies zu beheben? Ich glaube, ich füge sie dem Diktat nacheinander hinzu. Wenn nicht, gibt es eine Möglichkeit, die Punkte meines Streudiagramms zu verbinden, um das richtige Liniendiagramm zu simulieren?

import csv
import matplotlib.pyplot as plt 

start = 1880
stop = 1890
x = []
years = range(start, stop +1)
print years
letter_d = {}
year_d = {}
alphabet = ['Z']#,'C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

for i in alphabet:
    letter_d[i] = 0

for year in years:
    filename = 'yob' + str(year) + '.txt'
    z = open(filename)      
    year_d[int(year)] = 0
    letter_d[i] = year_d
    c = 0
    d = 0
    for line in z:
        y = line.strip().split(',')
        y.remove(y[1])
        c += int(y[1])
        if i in y[0]:
            d += int(y[1])
        year_d[year] = float(d)/float(c)            
        #x.append(y)
#print year_d
print year_d.keys()
plt.plot(year_d.keys(), year_d.values())
plt.show()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage