Python OrderedDict的使用案例解析

 更新時間:2019年10月25日 14:19:50   作者:北京流浪兒   我要評論
這篇文章主要介紹了Python OrderedDict的使用案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了Python OrderedDict的使用案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

很多人認為python中的字典是無序的,因為它是按照hash來存儲的,但是python中有個模塊collections(英文,收集、集合),里面自帶了一個子類

OrderedDict,實現了對字典對象中元素的排序。請看下面的實例:

import collections
print "Regular dictionary"
d={}
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
  print k,v

print "\nOrder dictionary"
d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['1'] = '1'
d1['2'] = '2'
for k,v in d1.items():
  print k,v

輸出:
Regular dictionary
a A
c C
b B

Order dictionary
a A
b B
c C
1 1
2 2

可以看到,同樣是保存了ABC等幾個元素,但是使用OrderedDict會根據放入元素的先后順序進行排序。所以輸出的值是排好序的。

OrderedDict對象的字典對象,如果其順序不同那么Python也會把他們當做是兩個不同的對象,請看事例:

print 'Regular dictionary:'
d2={}
d2['a']='A'
d2['b']='B'
d2['c']='C'

d3={}
d3['c']='C'
d3['a']='A'
d3['b']='B'

print d2 == d3

print '\nOrderedDict:'
d4=collections.OrderedDict()
d4['a']='A'
d4['b']='B'
d4['c']='C'

d5=collections.OrderedDict()
d5['c']='C'
d5['a']='A'
d5['b']='B'

print d1==d2

輸出:
Regular dictionary:
True

OrderedDict:
False

再看幾個例子:

dd = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
#按key排序
kd = collections.OrderedDict(sorted(dd.items(), key=lambda t: t[0]))
print kd
#按照value排序
vd = collections.OrderedDict(sorted(dd.items(),key=lambda t:t[1]))
print vd

#輸出
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Django中信號signals的簡單使用方法

    Django中信號signals的簡單使用方法

    這篇文章主要給大家介紹了關于Django中信號signals的簡單使用方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • Python定時任務sched模塊用法示例

    Python定時任務sched模塊用法示例

    這篇文章主要介紹了Python定時任務sched模塊用法,結合實例形式分析了定時任務sched模塊的基本功能、參數含義、多線程定時任務等相關操作技巧,需要的朋友可以參考下
    2018-07-07
  • 淺析Python 中整型對象存儲的位置

    淺析Python 中整型對象存儲的位置

    下面小編就為大家帶來一篇淺析Python 中整型對象存儲的位置。小編覺得挺不錯的,現在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • python中的hashlib和base64加密模塊使用實例

    python中的hashlib和base64加密模塊使用實例

    這篇文章主要介紹了python中的hashlib和base64加密模塊使用實例,hashlib模塊支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512,需要的朋友可以參考下
    2014-09-09
  • Python基于numpy靈活定義神經網絡結構的方法

    Python基于numpy靈活定義神經網絡結構的方法

    這篇文章主要介紹了Python基于numpy靈活定義神經網絡結構的方法,結合實例形式分析了神經網絡結構的原理及Python具體實現方法,涉及Python使用numpy擴展進行數學運算的相關操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python 單元測試(unittest)的使用小結

    Python 單元測試(unittest)的使用小結

    Python中有一個自帶的單元測試框架是unittest模塊,用它來做單元測試,本篇文章主要介紹了Python 單元測試(unittest)的使用小結,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python走樓梯問題解決方法示例

    Python走樓梯問題解決方法示例

    這篇文章主要介紹了Python走樓梯問題解決方法,結合實例形式分析了Python基于遞歸與迭代思想解決走樓梯問題的相關操作技巧,需要的朋友可以參考下
    2018-07-07
  • python kmeans聚類簡單介紹和實現代碼

    python kmeans聚類簡單介紹和實現代碼

    這篇文章主要為大家詳細介紹了python kmeans聚類簡單介紹和實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 利用Python的裝飾器解決Bottle框架中用戶驗證問題

    利用Python的裝飾器解決Bottle框架中用戶驗證問題

    這篇文章主要介紹了Python的Bottle框架中解決用戶驗證問題,代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • django的model操作匯整詳解

    django的model操作匯整詳解

    這篇文章主要介紹了django的model操作匯整詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論

福建体育彩票时时彩11