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

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • NPR

    NPR

    22 NİSAN 2006
  • UsherVEVO

    UsherVEVO

    15 EKİM 2009