久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > python 字典操作方法詳解

        python 字典操作方法詳解

        來(lái)源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-11-07 20:09:59 1699358999

        字典是一種通過(guò)名字或者關(guān)鍵字引用的得數(shù)據(jù)結(jié)構(gòu),key類(lèi)型需要時(shí)被哈希,其鍵可以是數(shù)字、字符串、元組,這種結(jié)構(gòu)類(lèi)型也稱之為映射。字典類(lèi)型是Python中唯一內(nèi)建的映射類(lèi)型。

        注意,浮點(diǎn)數(shù)比較很不精確,因此千萬(wàn)不要用浮點(diǎn)數(shù)作為key!

        一、字典的鍵不能是list類(lèi)型:

        list=[1,2,3,4]

        info2={list:'number'}

        結(jié)果:

        Traceback(mostrecentcalllast):

        File"D:/字典.py",line2,in

        info2={list:'number'}

        TypeError:unhashabletype:'list'

        二、list/set/dict均不可被哈希,int、float、str、tuple:是可以哈希的

        1list.__hash__;

        #結(jié)果為None

        2set.__hash__;

        #結(jié)果為None

        3dict.__hash__;

        #結(jié)果為None

        4print(int.__hash__);

        #

        5print(float.__hash__);

        #

        6print(str.__hash__);

        #

        7print(tuple.__hash__);

        #

        三、增

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        info['sex']='fale'

        print(info)

        結(jié)果:

        {'name':'jamnes','age':'32','work':'basketplayer','sex':'fale'}

        四、刪

        4-1pop():刪除指定key的鍵值對(duì)

        nfo={'name':'jamnes','age':'32','work':'basketplayer'}

        info.pop('work')

        print(info)

        結(jié)果:

        {'name':'jamnes','age':'32'}

        4-2clear():清除所有的鍵值對(duì)

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        info.clear()

        print(info)

        結(jié)果:

        {}

        4-3setdefault():刪除指定的元素,如果沒(méi)有,則返回none

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        info.setdefault('son')

        print(info)

        結(jié)果:

        None

        五、改

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        info['age']='33'

        print(info)

        結(jié)果:

        {'name':'jamnes','age':'33','work':'basketplayer'}

        六、查

        6-1get():通過(guò)給定的key,查找對(duì)應(yīng)的value,如果給定的可以在字典中無(wú),則返回None

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        a=info.get('age')

        print(a)

        結(jié)果:

        32

        6-2setdefault():通過(guò)給定的key,查找對(duì)應(yīng)的value,如果給定的可以在字典中無(wú),則返回None,

        同時(shí)在字典中增加'test':None鍵值對(duì)

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        a=info.setdefault('age')

        print(a)

        print(info)

        b=info.setdefault('sex')

        print(b)

        print(info)

        結(jié)果:

        32

        {'name':'jamnes','age':'32','work':'basketplayer'}

        None

        {'name':'jamnes','age':'32','work':'basketplayer','sex':None}

        七、更新

        7-1update()=

        一,更新里面有的信息,就是改變

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        info2={'name':'wade','age':'33','work':'basketplayer'}

        info.update(info2)

        print(info)

        結(jié)果:

        {'name':'wade','age':'33','work':'basketplayer'}

        二,更新里面沒(méi)有的信息,就是添加

        info={'name':'jamnes','age':'32','work':'basketplayer'}

        info2={'honor':'3champions'}

        info.update(info2)

        print(info)

        結(jié)果:

        {'name':'jamnes','age':'32','work':'basketplayer','honor':'3champions'}

        八、返回鍵,值,鍵值對(duì)

        keys():以列表(list)返回字典中的所有鍵(key),字典是無(wú)序的,所以這個(gè)list返回的不是定義字典的順序

        values():以列表(list)返回字典中的所有值,這個(gè)list的順序跟keys()返回的list順序是一一對(duì)應(yīng)的

        items():以列表(list)返回可遍歷的(鍵,值)元組數(shù)組,這個(gè)tuple的list包含了dictionary的所有數(shù)據(jù)

        dict={'k1':'v1','k2':'v2','k3':'v3'}

        #1,請(qǐng)循環(huán)遍歷除所有的key

        forkeysindict.keys():

        print(keys)

        #遍歷出所有的value

        forvalueindict.values():

        print(value)

        #遍歷出

        forkey,valueindict.items():

        print(key+':'+value)

        #結(jié)果:

        k1

        k2

        k3

        v1

        v2

        v3

        k1:v1

        k2:v2

        k3:v3

        九、練習(xí)字典

        dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

        a.請(qǐng)循環(huán)輸出所有的key

        b.請(qǐng)循環(huán)輸出所有的value

        c.請(qǐng)循環(huán)輸出所有的key和value

        d.請(qǐng)?jiān)谧值渲刑砑右粋€(gè)鍵值對(duì),"k4":"v4",輸出添加后的字典

        e.請(qǐng)?jiān)谛薷淖值渲小発1”對(duì)應(yīng)的值為“alex”,輸出修改后的字典

        f.請(qǐng)?jiān)趉3對(duì)應(yīng)的值中追加一個(gè)元素44,輸出修改后的字典

        g.請(qǐng)?jiān)趉3對(duì)應(yīng)的值的第1個(gè)位置插入個(gè)元素18,輸出修改后的字典

        dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

        #a.請(qǐng)循環(huán)輸出所有的key

        foriindic:

        print(i)

        foriindic.keys():

        print(i)

        #b.請(qǐng)循環(huán)輸出所有的value

        foriindic.values():

        print(i)

        c.請(qǐng)循環(huán)輸出所有的key和value

        fori,jindic.items():

        print(i,j)

        #d.請(qǐng)?jiān)谧值渲刑砑右粋€(gè)鍵值對(duì),"k4":"v4",輸出添加后的字典

        dic2={'k4':'v4'}

        dic.update(dic2)

        print(dic)

        dic['k4']='v4'

        print(dic)

        #e.請(qǐng)?jiān)谛薷淖值渲小発1”對(duì)應(yīng)的值為“alex”,輸出修改后的字典

        dic['k1']='alex'

        print(dic)

        f.請(qǐng)?jiān)趉3對(duì)應(yīng)的值中追加一個(gè)元素44,輸出修改后的字典

        dic['k3'].append(44)

        print(dic)

        #g.請(qǐng)?jiān)趉3對(duì)應(yīng)的值的第1個(gè)位置插入個(gè)元素18,輸出修改后的字典

        dic['k3'].insert(0,18)

        print(dic)

        十、根據(jù)字典的鍵值進(jìn)行排序

        反序:reverse=True

        mylist=['學(xué)習(xí)','工作','玩耍','學(xué)習(xí)','工作','工作']

        print(mylist)

        #list_element是另外一個(gè)列表,里面的內(nèi)容是list_element里面的無(wú)重復(fù)項(xiàng)

        myset=set(mylist)

        mydict={}

        foriteminmyset:

        res=mylist.count(item)

        sample={item:res}

        #print(res)

        #print("the%dhasfound%d"%(item,mylist.count(item)))

        mydict.update(sample)

        print(mydict)

        print(sorted(mydict.items(),key=lambdamydict:mydict[1],reverse=True))

        十一、OrderedDict的使用

        在Python中,dict這個(gè)數(shù)據(jù)結(jié)構(gòu)由于hash的特性,是無(wú)序的,這在有時(shí)候會(huì)給我們帶來(lái)一些麻煩,幸運(yùn)的時(shí),在collections模塊中為我們提供了OrderedDict,當(dāng)你需要獲取一個(gè)有序的字典對(duì)象時(shí),試用它即可。

        python中的字典(dict)對(duì)象可使用“鍵”,“值”對(duì)的形式存取值,但默認(rèn)的內(nèi)置類(lèi)型字典中的元素是無(wú)序的。Collections模塊下的OrderedDict類(lèi)實(shí)現(xiàn)了對(duì)字典的排序,OrderedDict是dict的一個(gè)子類(lèi),實(shí)現(xiàn)了對(duì)字典排序的功能,下面看一下兩者數(shù)據(jù)類(lèi)型的對(duì)比。

        fromcollectionsimportOrderedDict

        print('NormalDictionary:')

        d={}

        d['name']='v1'

        d['age']='v2'

        d['job']='v3'

        d['address']='v4'

        d1={}

        d1['job']='v3'

        d1['address']='v4'

        d1['name']='v1'

        d1['age']='v2'

        print(d)

        print(d1)

        print(d==d1)

        print('OrderedDict:')

        d2=OrderedDict()

        d2['name']='v1'

        d2['age']='v2'

        d2['job']='v3'

        d3=OrderedDict()

        d3['job']='v3'

        d3['age']='v2'

        d3['name']='v1'

        print(d2)

        print(d3)

        print(d2==d3)

        輸出結(jié)果:

        NormalDictionary:

        {'name':'v1','age':'v2','job':'v3','address':'v4'}

        {'job':'v3','address':'v4','name':'v1','age':'v2'}

        True

        OrderedDict:

        OrderedDict([('name','v1'),('age','v2'),('job','v3')])

        OrderedDict([('job','v3'),('age','v2'),('name','v1')])

        False

        從結(jié)果來(lái)看,如果是普通的字典,即使傳入的順序不一樣,但是依然是相同的字典;如果是OrderedDict,傳入的順序不一樣,那么得到的字典是不一樣的。

        以上內(nèi)容為大家介紹了python字典操作方法詳解,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        Python 決策樹(shù)算法思想

        決策樹(shù)(decisiontree)是一個(gè)樹(shù)結(jié)構(gòu)(可以是二叉樹(shù)或者非二叉樹(shù))。決策樹(shù)分為分類(lèi)樹(shù)和回歸樹(shù)兩種,分類(lèi)樹(shù)對(duì)離散變量做決策樹(shù),回歸樹(shù)對(duì)連續(xù)變量做...詳情>>

        2023-11-07 23:10:00
        Python C4.5算法

        ID3算法的作者昆蘭基于上面的不足,對(duì)ID3算法做了改進(jìn),這就是C4.5算法,也許你會(huì)問(wèn),為什么不叫ID4,ID5之類(lèi)的名字呢?那是因?yàn)闆Q策樹(shù)當(dāng)時(shí)太火...詳情>>

        2023-11-07 23:02:48
        Python 面向過(guò)程

        python面向過(guò)程優(yōu)點(diǎn):復(fù)雜的問(wèn)題流程化,進(jìn)而簡(jiǎn)單化(一個(gè)復(fù)雜的問(wèn)題,分成一個(gè)個(gè)小的步驟去實(shí)現(xiàn),實(shí)現(xiàn)小的步驟將會(huì)非常簡(jiǎn)單)舉個(gè)典型的面向過(guò)程...詳情>>

        2023-11-07 22:55:36
        Python編程規(guī)范的重要性

        首先談一下注釋:注釋不止是為了自己以后看的更清楚,還是為了以后的開(kāi)發(fā)人員所準(zhǔn)備的,其實(shí)一段時(shí)間后,當(dāng)需要對(duì)程序做一些修改或者是改正某個(gè)...詳情>>

        2023-11-07 22:37:35
        Python 基本語(yǔ)句

        1.條件語(yǔ)句在進(jìn)行邏輯判斷時(shí),我們需要用到條件語(yǔ)句,Python提供了if、elif、else來(lái)進(jìn)行邏輯判斷。格式如下所示:if判斷條件1:執(zhí)行語(yǔ)句1...elif...詳情>>

        2023-11-07 22:30:23
        民和| 循化| 德令哈市| 新源县| 东安县| 兴安县| 金溪县| 闻喜县| 甘南县| 略阳县| 信阳市| 元朗区| 呼玛县| 普洱| 浦北县| 临夏县| 什邡市| 松桃| 南宫市| 江都市| 读书| 东城区| 佛坪县| 洪江市| 凤城市| 页游| 城市| 南川市| 临海市| 治多县| 清水河县| 德令哈市| 乐清市| 廉江市| 苍溪县| 巨鹿县| 漳州市| 五常市| 宣汉县| 玛曲县| 武强县|