1. 程式人生 > >2-8 字典dict

2-8 字典dict

end 練習 9.png 必須 包含 技術分享 特性 冒號 個人

1.如何在一個變量裏存儲公司每個員工的個人信息?

  技術分享圖片

2.字典的定義與特性

  字典是Python語言中唯一的映射類型。

  定義:{key1:value1,key2:value2}

1、鍵與值用冒號“:”分開;
2、項與項用逗號“,”分開;

  特性:

1.key-value結構
2.key必須可hash、且必須為不可變數據類型、必須唯一
3.可存放任意多個值、可修改、可以不唯一
4.無序
5.查找速度快

假設key對應的hash值為下面的數字,排序然後根據二分法查找這個值所對應的key的hash值,

  二分法查找速度快

    技術分享圖片技術分享圖片

    技術分享圖片

3.字典的創建

person = {"name": "alex", age: 20}
#
person = dict(name=seven, age=20)
#
person = dict({"name": "egon", age: 20})
#

person = dict(([name,苑昊],[文周,18]))
{}.fromkeys(seq,100) #不指定100默認為None
#註意
>>> dic={}.fromkeys([k1,k2],[])
>>> dic
{
k1: [], k2: []} >>> dic[k1].append(1) >>> dic {k1: [1], k2: [1]}

    技術分享圖片

    技術分享圖片

>>> info
{jack: [22, mod, ui, 555], alex: [23, it, it, 1000]}

>>> info[jack]
[22, mod, ui, 555]
>>>
>>> info[alex]
[23, 
it, it, 1000] >>> >>> info[alex][0] 23 >>> info[alex][1] = 老師 >>> info {jack: [22, mod, ui, 555], alex: [23, 老師, it, 1000]}

4 .字典的常見操作

新增
    1、dic[new_key] = new_value;
    2、dic.setdefault(key, None) ,如果字典中不存在Key鍵,由 dic[key] = default 為它賦值;_

    技術分享圖片

查看
    1、dic[key],返回字典中key對應的值,若key不存在字典中,則報錯;
    2、dict.get(key, default = None) 返回字典中key對應的值,若key不存在字典中,則返回default的值(default默認為None)

    技術分享圖片 技術分享圖片

刪除
    1、dic.pop(key[,default]) 和get方法相似。如果字典中存在key,刪除並返回key對應的vuale;如果key不存在,且沒有給出default的值,則引發keyerror異常;
    2、dic.clear() 刪除字典中的所有項或元素;    

  技術分享圖片技術分享圖片

鍵、值、鍵值對
    1、dic.keys() 返回一個包含字典所有KEY的列表;
    2、dic.values() 返回一個包含字典所有value的列表;
    3、dic.items() 返回一個包含所有(鍵,值)元祖的列表;
    4、dic.iteritems()、dic.iterkeys()、dic.itervalues() 與它們對應的非叠代方法一樣,不同的是它們返回一個叠代子,而不是一個列表;

    技術分享圖片

修改
    1、dic[key] = new_value,如果key在字典中存在,new_value將會替代原來的value值;
    2、dic.update(dic2) 將字典dic2的鍵值對添加到字典dic中,key有的話會覆蓋

  技術分享圖片

循環
    1、for k in dic.keys()
    2、for k,v in dic.items()
    3、for k in dic

技術分享圖片

    技術分享圖片  技術分享圖片

技術分享圖片

    技術分享圖片

長度
    1、len(dic)

5.多級字典的嵌套

    技術分享圖片

6.字典-練習題

技術分享圖片

2-8 字典dict