2015-08-20 16 views
5

Python'da bir sözlüğün anahtar/değer çiftlerinin sırasını nasıl tersine çeviririm? Bunu yapabilirim bu konuda duymadığım bir işlevBir sözlükte anahtar/değer çiftlerinin sırasını ters çevirme (Python)

{"c":3, "b":2, "a":1} 

var mı:

{"a":1, "b":2, "c":3} 

Ben döndürecek şekilde bunu tersine çevirmek istiyorum: Örneğin, ben bu sözlük var? Bazı kod satırları da iyi.

+2

Python sözlükleri sipariş edilmez. – Delgan

cevap

7

Sözlüğün hiçbir anlamı yoktur, bu nedenle anahtar/değer çiftleriniz herhangi bir biçimde sıralanmaz. Eğer tuşların düzeni korumak istiyorsanız

, sen yerine normal sözlük kullanmak yerine, baştan Örnek collections.OrderedDict kullanmalıdır -

>>> from collections import OrderedDict 
>>> d = OrderedDict([('a',1),('b',2),('c',3)]) 
>>> d 
OrderedDict([('a', 1), ('b', 2), ('c', 3)]) 

OrderedDict tuşları girildi sırayı koruyacak sözlük. Yukarıdaki durumda, anahtarlar listesinde var sırayı olurdu - [('a',1),('b',2),('c',3)] -

Sonra, reversed(d) kullanarak Örnek tuşlarının ters sırasını alabilirsiniz -

>>> dreversed = OrderedDict() 
>>> for k in reversed(d): 
...  dreversed[k] = d[k] 
... 
>>> dreversed 
OrderedDict([('c', 3), ('b', 2), ('a', 1)]) 
+0

Evet doğru, bu bir nokta değil, sıralaması onu sıralayacak, OP 'sort' istemiyor, OP anahtarları ters sırada istiyor. –

+0

Evet :). Benim çözümüm sadece bu örnek için çözülüyor (şans). Bilgi için teşekkürler. :) – itzMEonTV

0

bir sözlük hashmap kullanır Anahtar ve karşılık gelen değerleri saklamak için. En

Görünüş: karma ile ilgili Is a Python dictionary an example of a hash table?

şey yok düzeni vardır.

Bu olayda yapabilirsiniz:

d = {} 
d['a']=1 
d['b']=2 
d['c']=3 
d['d']=4 
print d 
for k,v in sorted(d.items(),reverse = True): 
    print k,v 

d.items() dizilerini listesini döndürür: [('a', 1), ('c', 3), ('b', 2), ('d', 4)] ve k,v döngü içinde yineleme için küpe değerleri alır. sorted(), sıralı bir liste döndürür, ancak geri dönmeyen use d.items().sort() yapamazsınız, bunun yerine d.items()'un üzerine yazmayı dener.

İlgili konular