25 Ocak 2012, ÇARŞAMBA
Nasıl anahtar bir sözlük sıralama yapabilir miyim?
{1:89, 2:3, 3:0, 4:5}
{2:3, 1:89, 4:5, 3:0}
gitmek için iyi bir yol ne olabilir?
Ama hepsi "" dizilerini döndüren operatör. sıralanmış kullanın bazı yazılara baktım
CEVAP
25 Ocak 2012, ÇARŞAMBA
Standart Python sözlükler sırasız. Eğer (anahtar,değer) çiftleri sıralanır bile, sipariş koruyacak bir şekilde dict
saklamak mümkün olmaz.
En kolay şekilde hangi öğeleri eklenmiş sırasını hatırlayan OrderedDict
kullanmak için:
In [1]: import collections
In [2]: d = {2:3, 1:89, 4:5, 3:0}
In [3]: od = collections.OrderedDict(sorted(d.items()))
In [4]: od
Out[4]: OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
Asla od
yazdırılır; beklendiği gibi işe yarayacak şekilde zihin
In [11]: od[1]
Out[11]: 89
In [12]: od[3]
Out[12]: 0
In [13]: for k, v in od.iteritems(): print k, v
....:
1 89
2 3
3 0
4 5
Python 3
Python 3 kullanıcıları için, bir .iteritems()
yerine: .items()
kullanması gerekir
In [13]: for k, v in od.items(): print k, v
....:
1 89
2 3
3 0
4 5
Bunu Paylaş:
Nasıl bir liste alfabetik olarak jQuer...
Nasıl WPF Toolkit bir Kılavuzunu bir D...
Nasıl artan ve azalan sıralama undersc...
Nasıl sözlük olarak değişken anahtar d...
Nasıl bir yönlendirme sayfası jQuery k...