字典

【字典dict】

1.字典的概念:

1.字典是一種可變的容器,可以存放任意類型的數據
2.字典中的每一個數據都是用鍵(key)進行索引,而不像序列可以用下標進行索引
3.字典的數據沒有先後順序關係,字典的存儲是無序的
4.字典中的數據以鍵(key)-值(value)對進行映射存儲
5.字典的鍵不能重複,【且只能用不可變類型作爲字典的鍵】

2.字典的字面值表示方式:

用{}括起來,以冒號(:)分隔鍵-值對,各鍵值對用分號分隔開

3.創建字典

1.創建空字典:
	d = {}
2.創建非空字典:
	d = {'name':'tarena','age':15}
	d = {'姓名':'張三'}
	d  ={1:'一',2:'二']

4.字典的構造函數:

dict() 創建一個空字典,等同於{}
dict(iterable) 用可迭代對象初始化一個字典
dict(**kwargs) 關鍵字傳參形式生成一個字典
示例:
	d = dict()
	d = dict([('name','tarena'),('age',15)])
	d = dict(name = 'tarena',age = 15)
	d = dict(('AB','CD'))   # d = {'A':'B','C':'D'} #元組是可迭代對象

5.字典的鍵索引:

用[]運算符可以獲取字典內的'鍵'所對應的'值'
語法:
	字典[鍵]
獲取數據元素:
	d = dict(name = 'tarena',age = 15)
	print(d['age'])  # 15

6.添加修改字典元素:

字典[鍵] = 表達式
示例:
	d = {}
	d['name'] = 'tarena'  # 創建一個新的鍵值對
	d['age'] = 15        #創建鍵值對
	d['age'] = 22       #修改鍵值對

7.del語句刪除字典的元素:

語法:
	del字典[鍵]
示例:
	d = {'name':'zxl','age':22}
	d['age']
	print(d)   # d = {'name':'zxl'}
	d['name']
	print(d)  # {}

8.字典的in / not in 運算符:

可以用in運算符來判斷一個’鍵‘是否存在於字典中,如果存在則返回Ture,否則返回False
not in 與 in 相反
示例:
	d = {'a':1,'b':2} 
	'a' in d   # True
	1 in d     # False

9.字典的迭代訪問:

字典是可迭代對象,字典只能對鍵進行迭代訪問
d = {'name':'tarena','(2001,2,1)':'生日'}
for i in d:
    print(i)  #返回的是鍵

10.可以用於字典的內建函數:

len(x) 返回字典鍵值對的個數
max(x) 返回字典的鍵的最大值
min(x) 返回字典的鍵的最小值
sum(x) 返回字典所有鍵的和
any(x) 真值測試,只對鍵進行測試,如皋其中一個鍵爲True,結果爲True
all(x) 真值測試,全部鍵爲True,結果才爲True

11.字典的方法:

dict.fromkeys()用於創建並返回一個新的字典,它有兩個參數,第一個參數是字典的鍵,第二個參數是可選的,是傳入鍵對應的值。
		如果不提供,默認是None
示例:
	d = {}
	d.fromkeys((1,2,3))   # {1:None,2:None,3:None}
	d = {}
	d.fromkeys((1,2,3),('one','two','three'))  # {1:('one','two','three'),2:('one','two','three')]
dict.clear() 清空字典
dict.pop(key) 移除鍵,同時返回對應的值
dict.popitem() 彈出一個項(隨機彈出,因爲字典是無序的)如果字典爲空再用此方法則拋出異常
dict.copy() 返回字典的副本,只複製一層(淺拷貝)
dict.update(dict2) 將字典dict2合併到dict中,如果鍵相同,則此鍵的值取dict2的值作爲新值
dict.get(key,default) 返回鍵key所對應的值,如果沒有鍵,則返回default(自己定義,比如'木有')(默認返回一個None,表示啥都沒找到)
dict.setdefault() 和get方法相似,但是setdefault()在字典裏找不到相應的鍵會字典添加(在後面添加一個None)
	>>> d
	{1: 'one', 2: 'two', 3: 'three'}
	>>> d.setdefault(3)
	'three'
	>>> d.setdefault(5)
	>>> d
	{1: 'one', 2: 'two', 3: 'three', 5: None}

dict.keys() 返回可迭代的dict_keys集合對象
dict.values() 返回可迭代的dict_value值對象
dict.items() 返回可迭代的dict_items對象

12.字典的推倒式:

字典的推倒式是用可迭代對象依次生成字典內元素的表達式
語法:
	{鍵表達式:值表達式 for 變量 in 可迭代對象 [if 真值表達式]}
	注:[]的內容可以省略
示例:
	d = {x:x**2 for x in range(10)}

13.字典 vs 列表:

1.都是可變的容器
2.索引方式不同(列表用整數下標索引,字典用鍵索引)
3.字典的查找速度可能快於列表(重要,當數據很大時)
4.列表的存儲是有序的,字典的存儲是無序的
發佈了103 篇原創文章 · 獲贊 2 · 訪問量 6795
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章