Python學習日記---字典

來源:互聯網
上載者:User

標籤:python   字典   

  字典是Python的一種資料結構,像數學中的映射集合,可以理解為由鍵和值成對存在的單元構成的一個列表。

一.字典構造形式:

 1.字典名 = {鍵名1:值1 ,鍵名2:值2 ,鍵名3:值3}

 例如 :Dic = {‘op‘:55 , 3:(‘a‘,‘b‘) , ‘q‘:[1.25,‘score‘,5]}

 其中鍵只能是不可改變對象(如元組,字串,整數等)和值可以為任意的對象


 2.可以使用dict()或{}構造一個空的字典如 Dic=dict() DIc={}


二.字典的索引:

 1.字典可以使用 [ ] 運算子,但與之前的列表元組等不同,字典不可以使用順序的數字作為索引如   1,2,-1等

 2.字典需要使用索引值作為索引,如1.的例子中,可以使用如下的索引方法 Dic[‘op‘] Dic[3] Dic[‘q‘]

 3.既然字典的值可以是任意對象,那麼就有可能為列表,元組,甚至是字典。那麼當值為上述對象時候,使用字典名[索引值]方式將得到一個集合,由此我們可以使用一個二維的方法進行索引

 範例:

>>> Dic={‘a‘:{‘q‘:‘hello‘ , ‘w‘:‘how‘ , ‘e‘:‘Thanks‘}}>>> Dic[‘a‘][‘e‘]‘Thanks‘

一維結果為列表的話,二維的[]變可以使用順序的數字索引


以此類推,當二維鍵所對應的值仍為字典等集合時,可以繼續這樣使用:

>>> Dic={‘a‘:{‘q‘:‘hello‘ , ‘w‘:‘how‘ , ‘e‘:{‘u‘:‘yes‘}}}>>> Dic[‘a‘][‘e‘][‘u‘]‘yes‘

 4.如果在索引時,輸入的索引值不存在,Python將報錯


三.字典的賦值:

  賦值方法為 字典名[鍵名] = 值 以此形成一個映射關係

 當待賦值的鍵名不存在時,python將直接在該字典中加入此索引值對


四.與字典有關的操作:

 []:在方括弧中使用鍵進行索引

 len():計算出的長度為字典中索引值對的個數

 in:成員測試,判斷鍵是否在該字典中

 for:迴圈找出字典中每個索引值對


五.字典方法:

 items() : 產生所有索引值對的元組列表

  keys() : 產生所有鍵的列表

 values(): 產生所有值的列表

  copy() : 對字典進行淺拷貝 (參考關聯性)


六.一個執行個體

  以《葛底斯堡演說》為例進行分析,判斷其中的單詞數和對應的頻率,並進行排序顯示

import stringdef addword (word,Wdict):       #將word單詞加入字典統計,沒有添加索引值對,有則值+1    if(word in Wdict):        Wdict[word]+=1    else:        Wdict[word]=1def collect(line,Wdict):     #對line字串進行分析,並拆分出有效單詞加入到字典    line = line.strip()    wordline = line.split()    for word in wordline:        if(word == ‘--‘):            continue        word = word.strip(string.punctuation)        word = word.lower()        addword(word,Wdict)def Printf(Wdict):    #對字典內容排序輸出函數    resultwords = [[val,key] for key,val in Wdict.items()]    resultwords.sort(reverse=True)    print("%-12s%-10s"%(‘word‘,‘Count‘))    print(‘-‘*21)    for Count,Word in resultwords:        if(Count>2):            print("%-13s%-3d"%(Word,Count))Wdict = {}      #在這也可以將下面的代碼封裝到main(),然後執行main()運行程式FileODJ = open(‘wordtest.txt‘,‘rU‘)for line in FileODJ:    collect(line,Wdict)Printf(Wdict)

        

 

 



Python學習日記---字典

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.