Sto provando a creare un oggetto OrderedDict ma non appena lo creo, gli elementi sono tutti confusi.Python OrderedDict non mantiene l'ordine degli elementi
Questo è quello che faccio:
from collections import OrderedDict
od = OrderedDict({(0,0):[2],(0,1):[1,9],(0,2):[1,5,9]})
Gli elementi non rimanere nell'ordine assegno
od
OrderedDict([((0, 1), [1, 9]), ((0, 0), [2]), ((0, 2), [1, 5, 9])])
docs.python.org non ha un esempio e non posso' t capire perché l'ordine si sta confondendo. Qualsiasi aiuto è molto apprezzato.
Inoltre, passare nomi/valori al costruttore non è sufficiente per impostare l'ordine. '>>> dall'importazione di serie OrderedDict' ' >>> OrderedDict (one = 1, two = 2, three = 3, four = 4) ' ' OrderedDict ([('four', 4), ('one ', 1), (' tre ', 3), (' due ', 2)]) ' –
@EricSmith In effetti, per lo stesso motivo - variabili parole chiave args (' ** kwargs') in Python sono memorizzate come dizionario - così quando succede, l'ordine è perso come prima. Nota che [PEP-468] (http://legacy.python.org/dev/peps/pep-0468/) ha una soluzione semplice a questo: usa un 'OrderedDict' per' kwargs', non ancora una funzione, ma forse un giorno. –
@GarethLatty ora in [python 3.6] (https://docs.python.org/3/whatsnew/3.6.html#pep-468-preserving-keyword-argument-order) hanno implementato PEP-468 – Copperfield