python字典的概念與基本操作


字典是非常常用的一種數據結構,它與json格式的數據非常相似,核心就是以鍵值對的形式存儲數據,關於Python中的字典做如下四點說明:

1.構造字典對象需要用大括號表示 {},每個字典元素都是以鍵值對的形式存在,並且鍵值對之間用英文狀態下的'':''隔開

2.鍵在字典中是唯一的,不能有重復,對於字符型的鍵需要用引號引起來。值可以是單個值,也可以是多個值構成的列表,元組或字典

3.字典不再是序列,無法通過為止索引完成元素值的獲取,只能通過鍵索引實現。

4.字典與列表一樣,都是可變類型的數據結構。

dict1={'姓名':'張三','年齡':'33','性別':'男','子女':{'兒子':'張四','女兒':'張美'},'興趣':['踢球','游泳','唱歌']}

print(dict1)

print(dict1['年齡'])

print(dict1['子女']['兒子'])

print(dict1['興趣'][1])   

out:

{'姓名': '張三', '年齡': '33', '子女': {'兒子': '張四', '女兒': '張美'}, '性別': '男', '興趣': ['踢球', '游泳', '唱歌']}

33

張四
游泳

#對於字典來說,它不再是序列,通過第一條輸出的結果可知,構造時的字典元素與輸出時的字典元素順序已經發生了變化,想要獲取元素的值,只能
在索引里面寫入具體的鍵。


字典元素的基本操作方法:
1.字典元素的增加
一般使用以下三種方式實現:分別是:setdefault,update方法和鍵索引方法:
接上面的舉例:
dict1.setdefault('戶籍','合肥') #往字典中增加戶籍信息 此處需要注意一點,不是('戶籍''合肥')
dict1.update({'學歷':'碩士'}) #添加學歷信息 通過update的方式增加,添加的是字典形式的對象
dict1['身高'] = 178         #增加身高信息 通過直接鍵索引的方法直接設定對象並賦值即可

2.字典元素的刪除
關於字典元素的刪除可以使用pop,poptiem和clear三種方法實現。
例如:
dict1.pop('戶籍') #刪除戶籍信息
dict1['子女'].pop('女兒') #刪除字典中女兒的姓名
dict1.popitem() #刪除字典的最后一個元素
dict1.clear() #清除字典元素

3.字典元素的修改
字典元素的修改如增加部分提到的,也可以使用update方法和鍵索方法完成字典元素的修改.需要注意的是如果字典中的值是另一個字典或列表,
需要先通過鍵索引實現字典元素的查詢,然后在查詢的基礎上應用對應的修改方法即可(如update方法,取而代之).如下列出另外的幾個比較重要的方法:
dict2 = {'電影':['三傻大鬧寶萊塢','大話西游之大聖娶親','瘋狂動物城'],
'導演':['張三','李四','劉德華'],'評分':[9.1,9.2,9.3]}
print(dict2.get('評分'))
print(dict2.keys())
print(dict2.values())
print(dict2.items())
get方法的功能與建索引已知,可以從字典中取出鍵對應的值.所不同的是,如果某個鍵在字典中不存在,應用建索引的方法出產生'鍵錯誤'的信息;
而get方法不會報錯,如果沒有get到的話會顯示None,也就不會影響其他腳本的正常執行.keys,values和items方法分別取出字典中的所有鍵,值和鍵值對.



另外 keys(),values()和items()方法都可以用於字典的操作,值得注意一點的是,用這三個方法返回類似的列表的值,但這個返回值不是真正的列表,它們不能被修改,沒有append()
方法,但這些數據類型可以用於for循環。如:
for v in spam.values():
  print(v)

字典中的get()方法
  在訪問一個鍵的值之前,檢查該鍵是否存在於字典中,這很麻煩。好在,字典有一個get()方法,它有兩個參數:要取得其值的鍵,以及如果該鍵不存在事,返回的備用值,如下例題中
設置的備用值就是 0,你也可以指定 。

例如:

picnicItems = {'apples':5,'cups':2}
print(str(picnicItems.get('cups',0))+ 'cups.')
print(str(picnicItems.get('eggs',0))+ 'eggs.')

out:

2cups.
0eggs.

picnicItems字典中沒有‘eggs’,get()方法返回備用值0.如有這個鍵就返回具體的值,如例題的是 2


setdefault()方法

  常常需要為字典中的某個鍵設置一個默認值,當該鍵沒有任何值時就使用它代替。

例如:

>>> spam = {'name':'Pooka','age':5}
>>> spam.setdefault('color','black')
'black'
>>> spam
{'name': 'Pooka', 'age': 5, 'color': 'black'}
>>> spam.setdefault('color','white')
'black'
>>> spam
{'name': 'Pooka', 'age': 5, 'color': 'black'}
第一次調用setdefault()時,spam變量中的字典變為:{'name': 'Pooka', 'age': 5, 'color': 'black'} 該方法返回值‘black’,因為現在該值被賦給鍵‘color’。當接下來 

 spam.setdefault('color','white'),該鍵的值沒有被改成 white,因為spam變量已經有一個名為 color的鍵了。

 

setdefault()方法是個很好的快捷方式,可以確保一個鍵存在。如下:

message = 'It was a bright cold day in April ,and the clocks wre striking thirteen.'
count = {}
for character in message:
  count.setdefault(character,0)
  count[character] = count[character] + 1
print(count)

out:

{'I': 1, 't': 6, ' ': 13, 'w': 2, 'a': 4, 's': 3, 'b': 1, 'r': 5, 'i': 6, 'g': 2, 'h': 3, 'c': 3, 'o': 2, 'l': 3, 'd': 3, 'y': 1, 'n': 4, 'A': 1, 'p': 1, ',': 1, 'e': 4, 'k': 2, '.': 1}

如上,用setdefault()方法,確保count字典中的初始值都是0,這樣執行count[character] = count[character] + 1 時就不是出現KeyError的錯誤;



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM