有序字典就像普通字典一樣,但他們記住了項(xiàng)目插入的順序。 在迭代有序字典時(shí),將按照首次添加鍵的順序返回項(xiàng)目。
用法:
class collections.OrderedDict([items])
返回一個(gè)字典子類的實(shí)例,支持通常的字典方法。
OrderedDict是一個(gè)字典,它記住了鍵被首次插入的順序。
如果新條目覆蓋現(xiàn)有條目,則原始插入位置保持不變。
刪除一個(gè)條目并重新插入它將會把它移到最后。
popitem(last=True)
有序字典的popitem()方法返回并刪除(key, value)對。
如果 last 是 True 或者如果 FIFO(先進(jìn)先出) 的順序?yàn)閒alse,則按LIFO(后進(jìn)先出)順序返回鍵值對。
如果last是True,則以LIFO[后進(jìn)先出]的順序返回,如果為Flase,則以FIFO[先進(jìn)先出]順序返回。
move_to_end(key, last=True)
將現(xiàn)有鍵移至有序字典的任意一端。 如果last為True(默認(rèn)值),則項(xiàng)目移動到右側(cè),如果last為false,則移動到開頭。
如果key不存在,則引發(fā)KeyError:
除了通常的映射方法外,有序字典還支持reverse()方法進(jìn)行反向迭代。
OrderedDict對象之間的等式測試是順序敏感的,并且以 list(od1.items()) == list(od2.items()) 的形式實(shí)現(xiàn)。
OrderedDict對象與其他映射(Mapping)對象之間的等式測試對常規(guī)字典對順序不敏感。
這允許在使用常規(guī)字典的任何地方替換OrderedDict對象。
版本3.5中更改:OrderedDict的項(xiàng)目,鍵和值視圖現(xiàn)在支持使用reversed()進(jìn)行反向迭代。
在版本3.6中更改:隨著PEP 468的接受,保留傳遞給OrderedDict構(gòu)造函數(shù)和update()方法的關(guān)鍵字參數(shù)的順序。
OrderedDict Examples and Recipes(OrderedDict示例和食譜)
由于有序字典會記住它的插入順序,因此它可以與排序結(jié)合使用以創(chuàng)建一個(gè)排序后的字典:
刪除條目時(shí),新排序的字典會保持其排序順序。 但是,當(dāng)添加新的密鑰時(shí),密鑰被追加到最后,并且不會保留排序。
創(chuàng)建一個(gè)有序的字典變體也很簡單,可以記住上一次插入秘鑰的順序。如果新條目覆蓋現(xiàn)有條目,則會更改原始插入位置并移至結(jié)尾:
有序字典可以與Counter類組合使用,以便計(jì)數(shù)器記住第一次遇到的順序元素:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。