Próbuję utworzyć obiekt OrderedDict, ale nie będę go tworzyć, niż wszystkie elementy są pomieszane.Python OrderedDict nie zachowuje elementu zamówienia
To co mam zrobić:
from collections import OrderedDict
od = OrderedDict({(0,0):[2],(0,1):[1,9],(0,2):[1,5,9]})
Elementy nie pozostają w kolejności przypisać
od
OrderedDict([((0, 1), [1, 9]), ((0, 0), [2]), ((0, 2), [1, 5, 9])])
docs.python.org nie posiada przykładowe i mogę” t dowiedzieć się, dlaczego zamówienie jest pomieszane. Każda pomoc jest bardzo doceniana.
Warto również zauważyć, że przekazywanie nazw/wartości do konstruktora nie wystarcza do ustawienia kolejności. '>>> z kolekcji import OrderedDict' ' >>> OrderedDict (jeden = 1, dwa = 2, trzy = 3, cztery = 4) ' ' OrderedDict ([("cztery", 4), ('jeden ', 1), (' trzy ', 3), (' dwa ', 2)]) ' –
@EricSmith Rzeczywiście, z tego samego powodu - zmienne słowa kluczowe args (' ** kwargs') w Pythonie są przechowywane jako słownik - więc gdy tak się stanie, kolejność zostanie utracona, jak poprzednio. Zauważ, że [PEP-468] (http://legacy.python.org/dev/peps/pep-0468/) ma proste rozwiązanie - użyj 'OrderedDict' dla' kwargs', jeszcze nie funkcji, ale może kiedyś. –
@GarethLatty teraz w [python 3.6] (https://docs.python.org/3/whatsnew/3.6.html#pep-468-preserving-keyword-argument-order) wdrożyli PEP-468 – Copperfield