天天看點

python - 字典

*********************字典******************

字典是python中唯一的映射類型,key-value(哈希表),字典

對象是可變的,但key必須用不可變對象。

字典是無序的。

*)字典的建立

1.指派建立字典,key-value,鍵值對

In [4]: d = {'key':'value1','key2':'value2'}

In [5]: type(d)

Out[5]: dict

2.工廠法建立字典

In [6]: d = dict(user1='123',user2='456',user3='789')

In [7]: type(d)

Out[7]: dict

In [8]: print d

{'user2': '456', 'user3': '789', 'user1': '123'}

3.通過内建方法fromkeys建立字典

字典中的key有相同的value值,預設為None

In [9]: print {}.fromkeys('hello')

{'h': None, 'e': None, 'l': None, 'o': None}

In [10]: print {}.fromkeys(['user1','user2'],'123')

{'user2': '123', 'user1': '123'}

python - 字典

應用案例:生成多個銀行卡号,并初始化程式為‘000000’

卡号由6位組成,前3位是610,後面以此為001,002,003......

python - 字典

*)字典值的通路

•直接通過key通路

python - 字典

•循環周遊通路

python - 字典

-字典不能索引和切片,因為字典是無序的資料類型;

-字典不支援重複和連接配接;

-字典支援成員操作符,判斷字典的key值是否在字典中存在;in,not in

字典的增删改查

***增

In [16]: services = {'ftp':[20,21]}

#通過字典名[key]=value,将key-value添加到字典中;

In [17]: services['http'] = [80,8080]

In [18]: print services

{'ftp': [20, 21], 'http': [80, 8080]}

python - 字典

#update方法實作添加:key存在,覆寫value值,否則,添加

python - 字典
python - 字典

#setdefault實作添加:key存在,不覆寫value值,否則,添加

python - 字典

***改

update

•dic[key] = value

***查

In [78]: dic.keys()  檢視key值

In [79]: dic.values() 檢視values值

python - 字典

In [85]: dic.items()  檢視  key - value 值

In [104]: dic.has_key('age')  檢視key是否存在

Out[104]: True

In [105]: dic.get('age') 檢視指定key對應的value值;若key存在傳回value值;若不存在,不報錯

Out[105]: 'no'

In [106]: dic.get('agee')

**循環周遊字典

#預設情況下周遊字典的key值;

python - 字典
python - 字典

***删

• dic.pop(key)

根據key值删除字典的元素;

In [109]: dic = {'name':'huan','age':'no','habby':'play'}

In [110]: dic.pop('age')

Out[110]: 'no'

• dic.popitem()

随機删除字典元素,傳回(key,value)

In [111]: dic.popitem()

Out[111]: ('name', 'huan')

•dic.clear()

删除字典中的所有元素

In [112]: dic.clear()

•del dic

删除字典本身

In [113]: del dic

python - 字典

案例:

實作四則運算

-使用者分别輸入第一個數字,運算操作符,第三個數字;

-根據使用者的運算操作列印出運算結果;

python - 字典
python - 字典