Itérer sur OrderedDict python

J'ai le texte suivant OrderedDict:

OrderedDict([('r', 1), ('s', 1), ('a', 1), ('n', 1), ('y', 1)])

Ce fait présente une fréquence d'une lettre dans un mot.

Dans la première étape, je prendrais les deux derniers éléments pour créer une union tuple comme cela;

 pair1 = list.popitem()
    pair2 = list.popitem()
    merge_list = (pair1[0],pair2[0])
    new_pair = {}
    new_pair[merge_list] = str(pair1[1] + pair2[1])
    list.update(new_pair);

Cela a créé pour moi qui suit OrderedList:

OrderedDict([('r', 1), ('s', 1), ('a', 1), (('y', 'n'), '2')])

Je voudrais maintenant, pour effectuer une itération sur les éléments, prenant à chaque fois le dernier de trois, et de décider de la diminution de la somme des valeurs de ce qui est l'objet de l'union.

Par exemple la liste ci-dessus va à son tour;

OrderedDict([('r', 1), (('s', 'a'), '2'), (('y', 'n'), '2')])

mais le dessus a été:

OrderedDict([ ('r', 1), ('s', 2), ('a', 1), (('y', 'n'), '2')])

Le résultat serait:

OrderedDict([('r', 1), ('s', 2), (('a','y', 'n'), '3')])

que je veux la gauche qui, à avoir la valeur la plus petite

J'ai essayé de le faire moi-même mais ne comprend pas comment effectuer une itération à partir de la fin au début sur une OrderedDict.

Comment puis-je le faire?

ÉDITÉ
Répondre au commentaire:

- Je obtenir un dictionnaire de fréquence d'une lettre en une phrase:

{ 's':1, 'a':1, 'n':1, 'y': 1}

et de la nécessité de créer un arbre de huffman.

par exemple:

((s,a),(n,y))

Je suis à l'aide de python 3.3

source d'informationauteur Dejell