2012-11-05 12 views

Odpowiedz

12

Słowniki nie mają porządku, a zatem nie mają początku ani końca. Kolejność wyświetlania jest dowolna. Jeśli potrzebujesz zamówienie, można użyć list z tuple s zamiast dict:

In [1]: mylist = [] 

In [2]: mylist.append(('key', 'value')) 

In [3]: mylist.insert(0, ('foo', 'bar')) 

Będziesz mógł łatwo przekształcić go w późniejszym dict:

In [4]: dict(mylist) 
Out[4]: {'foo': 'bar', 'key': 'value'} 

Alternatywnie, użytkowania a collections.OrderedDict zgodnie z sugestią IamAlexAlright.

+0

thx, że pracował – user1801180

5

A dict w Pythonie nie jest "uporządkowany" - w Pythonie 2.7+ jest collections.OrderedDict, ale poza tym - nie ... Kluczowym punktem słownika w Pythonie jest efektywny klucz-> wartość wyszukiwania ... Kolejność widzisz je jest całkowicie arbitralne w zależności od algorytmu mieszania ...

+0

Zależy to od algorytmu mieszania, a także od kolejności wstawiania elementów (w przypadku kolizji). – mgilson

+0

@mgilson Yup - całkowicie odmienny od C++ 'map' - który zapewnia porządkowanie kluczy - itd ... etc ... –

+1

Nie wiedziałbym o C++ ... Moja pierwsza klasa programowania to C++ i ja * nienawidziłem * . Myślałem, że programowanie to najgłupsza rzecz w historii. Jak na ironię, w końcu zacząłem lubić programowanie, kiedy zacząłem programowanie w C, a następnie Fortran po tym (wydaje się, że cofnąłem się trochę). Python, Fortan i C to w zasadzie jedyne języki, które teraz koduję - z niewielkimi skryptami powłoki tu i tam, kiedy to konieczne. – mgilson

Powiązane problemy