2013-11-02 57 views
-3

排序Python字典我有這種形式的一個Python詞典:)與兩個鍵

text.items([:2]

[(('id','id1'), text', ('id','id1'), 'text', ('id','id1'), 'text')] 

,我想通過ID1至排序。任何幫助?

+0

'text.items()[:, 2]'我確定這是否是一個有效的Python語法 - AB請你詳細說明一下嗎? –

+2

這不是一本字典。它是一個包含元組和元素的元組的列表。 – iCodez

+0

@iCodez正確!另外,我之前強調的代碼 - 這不是一個有效的語法,對吧? –

回答

1

Python字典是無序的,因此不能排序。但是,正如您所瞭解的那樣,可以對從其items()iteritems()方法返回的值進行排序。如果字典的鍵是元組中所示的例子,你想排序在他們每個人的第二個值,這裏是一個有效的方式來做到這一點:

text = {('idA','id2'): 'text', 
     ('idB','id1'): 'text', 
     ('idC','id3'): 'text',} 

print sorted(text.iteritems(), key=lambda item: item[0][1]) 

輸出:

[(('idB', 'id1'), 'text'), (('idA', 'id2'), 'text'), (('idC', 'id3'), 'text')] 
1

假設dictionary.items回報:

items = [(('id','id1'), 'text'), (('id','id1'), 'text'), (('id','id1'), 'text')] 

可以通過執行排序的元組的第一個元素:

items.sort(key=lambda item: item[0][0])