**
一、對映型別
我理解中的對映型別是:鍵值對的關係,鍵(key)對映值(value),且它們是一對多的關係。
字典是python唯一的對映型別。
擴充套件1:雜湊表
一種資料結構,值是根據相關的鍵進行資料儲存的,形成"鍵-值對"(key-value pairs),雜湊表中的值是沒有順序的。
擴充套件2:對映型別與序列型別的區別
1):訪問方式不同,序列型別用數字型別的鍵,而對映型別可以用其他物件型別做鍵(一般式字串)
>>> lis = ['a','b','c']>>> lis[2]
'c'>>> dic =
>>> dic['mother']
'c'
2):儲存型別不同,對映型別的鍵,直接或間接地與值相關。
3):序列型別,有序之列;對映型別則無序之列
二、字典
1、工廠方法dict():
>>> tu=(['a','b'],['xx','yy'])>>>tu
(['a', 'b'], ['xx', 'yy'])
>>> fdict =dict(tu)
>>>fdict
2、訪問形式:
>>>dic>>> for obj indic:
printobj
father
name
mother
>>> for obj indic.keys():
printobj
father
name
mother
>>> for obj indic.values():
printobj
bac>>> for obj indic.items():
printobj
('father', 'b')
('name', 'a')
('mother', 'c')
>>>
3、has_key()、in、not in來檢查是否有某個鍵,has_key()已慢慢棄用了。
4、有則更新,無則添
5、刪除
del dic['name'] #刪除元素del dic #刪除整個
6、操作符
、和 in、not in
>>> if 'name' indic:print dic['name']
a
7、相關函式
dict():建立字典
len():返回鍵值對數目
hash(obj):返回obj的雜湊值
8、內建方法
dict.clear():刪除字典中所有元素
dict.copy():淺copy
dict.formkeys():建立字典
dict.get(key,default=none):返回對應鍵值
dict.has_key():鍵是否存在
dict.items():返回字典中鍵值對元祖的列表
dict.keys():鍵的列表dict.values():值的列表
......
>>>dic.keys()['father', 'name', 'mother']
>>>dic.values()
['b', 'a', 'c']
>>> dic.get('name')
'a'
三、注意
1、不允許乙個鍵對應多個值,乙個鍵只能對應一項
2、當鍵發生衝突時,取最後乙個。
3、python不會檢查鍵的衝突,也不會因為鍵的衝突而產生錯誤,如果檢查每個鍵是否衝突勢必會占用很多記憶體。
>>> dic=>>>dic
4、鍵必須是可雜湊的。
所有不可變型別都是可雜湊的,不可變型別如(列表、字典)則不能。
不可變型別:string,integer,tuple、
可變型別:list,dict
5、值相同的數字表示相同的鍵,如1和1.0的雜湊值是相同的,因此它們是相同的鍵。
>>> dic=>>>dic
python學習(9) 字典
字典 1 字典的使用 1.1 字典的定義 在python中,字典是一系列鍵 值對。每個鍵與每乙個值都相關聯,可以使用鍵來訪問與之關聯的值 與鍵相關聯的值可以是數字 字串 列表及字典,和json的結構非常類似 鍵和值之間用冒號分隔,而鍵 值對之間用逗號分隔。字典中可以包含任意數量的鍵值對 user1 ...
Python基礎 9 字典
字典是乙個無序的資料集合 字典用 定義,使用鍵值對儲存資料,鍵值對之間用 分隔 鍵key是索引,值value是資料,鍵和值之間用 分隔,鍵必須是唯一的,只能使用字串 數字或元組,值可以取任何資料型別 xiaoming 取值 print xiaoming name 增加或修改,如果key不存在會新增鍵...
Python基礎9 字典
coding utf8 字典由鍵和對應的值組成 鍵值對 雜湊表,字典元素也可以為空 dict1 dict2 鍵與值間需用冒號隔開,每一對鍵之間需要逗號作為分隔符,鍵與值的關係為一對多的 print dict1 字典是沒有順序的,列印時會隨機排序,若需訪問字典元素則需通過鍵來進行訪問 print di...