SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ExcelTutorials

    ExcelTutoria

    2 Mayıs 2009
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011
  • VitalyzdTv

    VitalyzdTv

    7 AĞUSTOS 2011