Python數據類型中的字典-創建和基本操作

Python當中字典的創建和基本操作

 

 

本章 含有 字典定義 及操作

l  字典定義

l  基本操作

l  常用方法

列表也是常用的數據類型-列表是最靈活的一個,甚至可以當成一個小的數據庫,用來存儲數據。

用列表存儲數據的時候會非常的不方便,所謂的不方便,下面會有例子演示當中,比較一下。

字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({}) 

格式如下 dict = {’key’:’value’, ’key’:’value’}

 

字典相關 定義

l  字典(dictionary)是除列表以外python之中 最靈活的內置數據結構類型。

l  區別:

字典當中的元素是通過鍵來存取,而不是通過偏移存取。

 

字典的特性

字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。

兩個重要的點需要記住:

 

 

字典可以說 是在python當中,除了列表以爲 最靈活的內置數據類型了。

唯一的區別,就是我們在字典當中取值的時候,並不是像序列那樣 通過索引取值。字典雖然有很多值,但是我們並不把字典稱之爲序列。因爲在python2當中,ptthon3.幾之前 字典都是無序的,只不過在最新的python當中 看起來有序,但是不能通過偏移去存取。

看一下它的區別-什麼叫做通過鍵來取值,這就要說到列表和字典他們兩個的區別了。

可以在回顧一下列表。

 

回顧列表案例

blob.png操作,程序是沒有問題的,關鍵問題在於它並不能直觀的反應,內容是什麼

比如player1 、0號元素和1號元素,不方便知道 0 號代表的就是 字符串 milo,1號元素代表 整數 100。

看上面的數據結構

我們在定義的時候,不把它們定義到一起,在程序當中調用數據的時候,就會顯示的不太直觀。

也就是 這個值 它沒有一個直觀的名字。它只是聲明的一個數字 用來做索引。

 這種情況下 用字典就非常方便了。下面來看下字典創建和使用

 

字典創建

字典的定義方式。

創建字典就是花括號{ key 和 value}  key我們叫做鍵 value叫做值,兩個就是鍵值,

都是一對 一對 成對出現的。可以給值取個名字。比如 叫做 user 或者 HP 這樣名字

然後通過這個名字 去取這個值。

 

創建字典案例

blob.png

現在我們得到一個列表。注意看我們現在得到一個列表,它是無序的,和列表是有區別的,這個不重要,因爲我們取值都是不是通過索引。我們是通過名字,也就 說到的 kev 簡寫 K

 

字典取值寫法 案例

blob.png

設計已經比較人性化了,我們要取裏面的值,不需要記住索引,什麼 0 位 啊  1 位的什麼 ,我們只要記住 kev 名字是什麼 就可以取值  。明顯我們可以看出 這是一個非常標籤化 人性化的一個索引。

好處 : 通過 名字 就知道 大概要獲取到什麼樣的數據,方便的通過它的名字 獲取到什麼樣的值,我們叫做 kev 和 value ,稱之爲 鍵值對。 kev 可以是 任何類型 比如 數字 字符串 甚至可以是任何一個對象,前面是一個索引 後面 是對應的對象。

blob.png看上去好像跟 列表一樣, 實際上是有着 本質上的區別的。

是因爲 1 這個 kev 值 對於的是a,所以 獲取到纔是 a

 

 

字典屬性

l  通過鍵 而不是偏移量來讀取

l  任意對象的引用的集合(聯想列表存儲結構圖)

l  可變,異構,任意嵌套

l  屬於可變映射類型

l  對象引用表(哈希表-支持快捷檢索的數據結構)

 

字典訪問

l  通過Key訪問Value

l  單個訪問

  dict[’key’]

l  遍歷

For key in dict

…print ’key’= %s,value =%s’%’(key,dict[key])

l  方法

  ’key’in dict 或dict.has_key(’key’)

 

字典增加一個值例子

blob.png字典裏面 添加的數據不是按照我們添加的結構排列的

python3默認的排序,是按照順序排列的,順序目前對於一般的來說 影響不是特別大,因爲我們是通過索引,kev 來取它的值

 

字典遍歷例子

blob.png字典 既然 不是 一個 序列 ,那麼 取值的 是通過key取值的

k會自動 迭代 字典當中的 k

d 字典 裏面 迭代 k 索引1值

 

字典方法

blob.png

查看某個kev 在不在 字典裏面,沒有返回False ,有 返回True

 

還可以用 help(dict)查看字典 相關幫助

blob.png

 

help看的時候 比較 詳細,比較多 ,查看方法的 可以用 dir(dict)

blob.png

 

 

字典更新

l  採取覆蓋更新

1.  Dict[’key’]=’earth’

2.  更新dict[’key’] = ’qwer’

blob.png指定某一個kev 進行替換。讓它 等於一個值 ,如果沒有 就增加,如果有的話,就會進行更新。

 

 

刪除字典和字典元素

l  Del dict1[’name’]# 刪除鍵爲’name’條目

l  Dict1.clear()# 刪除dict中所有的條目

l  Del dict1#  刪除整個dict1字典

l  Dict1.pop(’name’)# 刪除並返回鍵爲’name’的條目

 

字典並沒有那麼複雜,它和列表 類似,區別就是 它並不是像列表當中 是有序的,在字典當中是通過key 取值,不是像列表當中 通過偏移量來取的。

 

a)  刪除條目

blob.png

2.  刪除所有條目

blob.png

3.  刪除整個字典

blob.png

4.  刪除並返回鍵爲’定義’的條目

blob.png

 

 

 

字典技巧

blob.png

 

Python字典包含了以下內置方法

 

 

1

Dict.clear()
 
刪除字典內所有元素

2

dict.copy()
 
返回一個字典的淺複製

3

dict.fromkeys(seq[, val])
 
創建一個新字典,以序列   seq 中元素做字典的鍵,val 爲字典所有鍵對應的初始值

4

dict.get(key,   default=None)
 
返回指定鍵的值,如果值不在字典中返回default值

5

dict.has_key(key)
 
如果鍵在字典dict裏返回true,否則返回false

6

dict.items()  
 
以列表返回可遍歷的(鍵, 值) 元組數組

7

dict.keys()
 
以列表返回一個字典所有的鍵

8

dict.setdefault(key, default=None)
 
和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設爲default

9

dict.update(dict2)
 
把字典dict2的鍵/值對更新到dict裏

10

dict.values()
 
以列表返回字典中的所有值

11

pop(key[,default])
 
刪除字典給定鍵 key   所對應的值,返回值爲被刪除的值。key值必須給出。 否則,返回default值。

12

popitem()
 
隨機返回並刪除字典中的一對鍵和值。

 

本章 獲得知識點

瞭解 python 中, 字典創建。

字典的基本操作, 字典遍歷 刪除字典 更新字典等。


    2017年12月23日王宇林


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章