Python當中字典的創建和基本操作
本章 含有 字典定義 及操作
l 字典定義
l 基本操作
l 常用方法
列表也是常用的數據類型-列表是最靈活的一個,甚至可以當成一個小的數據庫,用來存儲數據。
用列表存儲數據的時候會非常的不方便,所謂的不方便,下面會有例子演示當中,比較一下。
字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中
格式如下 dict = {’key’:’value’, ’key’:’value’}
字典相關 定義
l 字典(dictionary)是除列表以外python之中 最靈活的內置數據結構類型。
l 區別:
字典當中的元素是通過鍵來存取,而不是通過偏移存取。
字典的特性
字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。
兩個重要的點需要記住:
字典可以說 是在python當中,除了列表以爲 最靈活的內置數據類型了。
唯一的區別,就是我們在字典當中取值的時候,並不是像序列那樣 通過索引取值。字典雖然有很多值,但是我們並不把字典稱之爲序列。因爲在python2當中,ptthon3.幾之前 字典都是無序的,只不過在最新的python當中 看起來有序,但是不能通過偏移去存取。
看一下它的區別-什麼叫做通過鍵來取值,這就要說到列表和字典他們兩個的區別了。
可以在回顧一下列表。
回顧列表案例
操作,程序是沒有問題的,關鍵問題在於它並不能直觀的反應,內容是什麼
比如player1 、0號元素和1號元素,不方便知道 0 號代表的就是 字符串 milo,1號元素代表 整數 100。
看上面的數據結構
我們在定義的時候,不把它們定義到一起,在程序當中調用數據的時候,就會顯示的不太直觀。
也就是 這個值 它沒有一個直觀的名字。它只是聲明的一個數字 用來做索引。
這種情況下 用字典就非常方便了。下面來看下字典創建和使用
字典創建
字典的定義方式。
創建字典就是花括號{ key 和 value} key我們叫做鍵 value叫做值,兩個就是鍵值,
都是一對 一對 成對出現的。可以給值取個名字。比如 叫做 user 或者 HP 這樣名字
然後通過這個名字 去取這個值。
創建字典案例
現在我們得到一個列表。注意看我們現在得到一個列表,它是無序的,和列表是有區別的,這個不重要,因爲我們取值都是不是通過索引。我們是通過名字,也就 說到的 kev 簡寫 K
字典取值寫法 案例
設計已經比較人性化了,我們要取裏面的值,不需要記住索引,什麼 0 位 啊 1 位的什麼 ,我們只要記住 kev 名字是什麼 就可以取值 。明顯我們可以看出 這是一個非常標籤化 人性化的一個索引。
好處 : 通過 名字 就知道 大概要獲取到什麼樣的數據,方便的通過它的名字 獲取到什麼樣的值,我們叫做 kev 和 value ,稱之爲 鍵值對。 kev 可以是 任何類型 比如 數字 字符串 甚至可以是任何一個對象,前面是一個索引 後面 是對應的對象。
看上去好像跟 列表一樣, 實際上是有着 本質上的區別的。
是因爲 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’)
字典增加一個值例子
字典裏面 添加的數據不是按照我們添加的結構排列的。
是python3默認的排序,是按照順序排列的,順序目前對於一般的來說 影響不是特別大,因爲我們是通過索引,kev 來取它的值
字典遍歷例子
字典 既然 不是 一個 序列 ,那麼 取值的 是通過key取值的
k會自動 迭代 字典當中的 k
d 字典 裏面 迭代 k 索引1值
字典方法
查看某個kev 在不在 字典裏面,沒有返回False ,有 返回True
還可以用 help(dict)查看字典 相關幫助
help看的時候 比較 詳細,比較多 ,查看方法的 可以用 dir(dict)
字典更新
l 採取覆蓋更新
1. Dict[’key’]=’earth’
2. 更新dict[’key’] = ’qwer’
指定某一個kev 進行替換。讓它 等於一個值 ,如果沒有 就增加,如果有的話,就會進行更新。
刪除字典和字典元素
l Del dict1[’name’]# 刪除鍵爲’name’條目
l Dict1.clear()# 刪除dict中所有的條目
l Del dict1# 刪除整個dict1字典
l Dict1.pop(’name’)# 刪除並返回鍵爲’name’的條目
字典並沒有那麼複雜,它和列表 類似,區別就是 它並不是像列表當中 是有序的,在字典當中是通過key 取值,不是像列表當中 通過偏移量來取的。
a) 刪除條目
2. 刪除所有條目
3. 刪除整個字典
4. 刪除並返回鍵爲’定義’的條目
字典技巧
Python字典包含了以下內置方法
1 | Dict.clear() |
2 | dict.copy() |
3 | dict.fromkeys(seq[, val]) |
4 | dict.get(key, default=None) |
5 | dict.has_key(key) |
6 | dict.items() |
7 | dict.keys() |
8 | dict.setdefault(key, default=None) |
9 | dict.update(dict2) |
10 | dict.values() |
11 | pop(key[,default]) |
12 | popitem() |
本章 獲得知識點
瞭解 python 中, 字典創建。
字典的基本操作, 字典遍歷 刪除字典 更新字典等。
2017年12月23日王宇林