字典

轉載:https://www.cnblogs.com/hukey/p/9621631.html
1.字典
    dict 用{} 來表示,鍵值對數據 {key:value}以對出現
    不可變得數據類型,可以當哈希的鍵值
   1.字典的增加
     dic[key] = value
     dic['火女'] = '人頭狗'
     dic.setdefaul=(key,value)
     dic.setdefaul=('火女',人頭狗)
    2.字典刪除
     dicpop(key)    有返回值,返回的是被刪除的vlaue
     dic.pop('易大師') 刪除鍵值
     dic.del[key] 刪除鍵值
     dic.del['劍豪'] 刪除鍵值
     potitem() 隨機刪除
     dic.clear 清空所有,只剩下{}字典括號
    3,字典的更改
     dic[key] = value 強行修改
     dic['劍豪'] = '哈沙閣'
     dic.update{字典}
    3.字典的查詢
        1.for i in dic:
        print(i)   #for獲取的是字典的鍵,而不是值
      也可以這樣來獲取
       2. for i in dic.keys():
      print(i)

        3.for i in dic.items():
         get(key)
         dic(k)
         for循環
         setdefault(key)
     4.字典的其他操作
         keys  獲取所有的鍵存在一個高仿的列表中
         values  獲取所有的值存在一個高仿的列表中
         items 獲取說有的鍵對值以元祖的形式放到高仿列表中
     5.解構(解包)
       a,b = [1,2]#把後面的解構打開按位置賦值
       print(a)
       print(b)
       for item in dic.items():
            print(item)
6.字典的嵌套
dic = {'name':'王峯',
       'age':'43',
       'wife':{
            'name':'國際章',
            'age':'39',
           'salary':'1000'
       },
       'baby':[
           {'name':'熊大','age':'18'},
           {'name':'熊二','age':'16'}
        ]
       }
print(dic['baby'][0]['age']) #打印baby這個key裏的列表的第個元素的字典的agekey的值
#如果要報age改爲19歲可以這樣子.  dic['baby'][0]['age'] = 19
print(dic)

數據類型劃分:
    可變數據類型:list、dict、set    不可哈希
    不可變數據類型:tuple、bool、int、str    可哈希

字典的特點:

python內置了字典類型,使用鍵-值(key - value) 存儲,具有極快的查找速度;

key:必須是 不可變數據類型
value:任意數據類型

dict 優點:
    二分查找效率快
    存儲大量的關係型數據
    特點:字典是無序的

字典的增刪改查

1.增加

(A) dic1['key'] = value     沒有鍵值對,則添加;如果鍵,則值覆蓋。

1

2

3

4

5

6

dic1 = {"name""hkey""age"18"sex""male"}

dic1["heigh"= 185

dic1['name'= 'jay'

print(dic1)

# 執行結果:

# {'age': 18, 'sex': 'male', 'name': 'jay', 'heigh': 185}

 

(B) set_default()    有鍵值對,不做任何改變,沒有才添加。

1

2

3

4

5

6

7

8

dic = {'name':'jay''age':18'sex''male'}

 

dic.setdefault('age'20)       # 存在不修改,不報錯

dic.setdefault('heigh'180)    # 不存在修改。

print(dic)

 

# 執行結果:

# {'sex': 'male', 'heigh': 180, 'age': 18, 'name': 'jay'}

 

2. 刪除

(A) pop(key, None)    刪除鍵值對,並返回值。如果字典中沒有刪除的key,則返回 None

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dic = {'name':'jay''age':18'sex''male'}

t1 = dic.pop('name')    # 當 key 存在時,刪除字典中的key-value並返回value值給 t1

print(t1)

print(dic)

 

# 執行結果:

# jay

# {'sex': 'male', 'age': 18}

 

 

dic = {'name':'jay''age':18'sex''male'}

t1 = dic.pop('name1111'None)    # 當 key 不存在時,則返回定義的第二個參數給 t1

print(t1)

# 執行結果:

# None

 

(B) popitem() 隨機刪除並返回刪除元組,元組裏面是刪除的鍵值對

1

2

3

4

5

6

7

8

9

dic = {'name':'jay''age':18'sex''male'}

 

t1 = dic.popitem()  # 隨機刪除key-value 並作爲元組返回給 t1

print(t1, type(t1))

print(dic)

 

# 執行結果:

# ('name', 'jay') <class 'tuple'>

# {'sex': 'male', 'age': 18}

 

(C) del 刪除鍵值對或者整個字典

1

2

3

dic = {'name':'jay''age':18'sex''male'}

del dic['name'# 刪除字典中的鍵值對

del dic # 直接刪除整個字典

 

 3. 修改

(A) update     合併兩個字典

1

2

3

4

5

6

7

8

9

10

11

dic = {'name':'jay''age':18'sex''male'}

dic2 = {'name1':'hkey''age1'20}

 

dic.update(dic2)    # 將dic2作爲參數合併到dic中,dic變,dic2不變

 

print('dic:', dic)

print('dic2:', dic2)

 

# 執行結果:

# dic: {'age': 18, 'name': 'jay', 'sex': 'male', 'name1': 'hkey', 'age1': 20}

# dic2: {'age1': 20, 'name1': 'hkey'}

 

4. 查詢

(A) dic.keys    字典key的組合,可以當成list類型來處理
(B) dic.values    字典value的組合,可以當成list類型來處理
(C) dic.items    字典(key, value)的組合,可以當做元組來處理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

dic = {'name':'jay''age':18'sex''male'}

 

print(dic.keys())

print(dic.values())

print(dic.items())

 

# 執行結果:

# dict_keys(['age', 'sex', 'name'])

# dict_values([18, 'male', 'jay'])

# dict_items([('age', 18), ('sex', 'male'), ('name', 'jay')])

 

keys()、values()、items() 一般用for來遍歷

 

for in dic:   # 循環 key 值

    print(k)

 

for in dic.values():  # 循環 value 值

    print(v)

 

for k, v in dic.items():    # 循環key, value 值

    print(k, v)

 

 (D) dic.get()    存在則返回 value值,不存在就返回預設值

1

2

3

4

5

6

7

dic = {'name':'jay''age':18'sex''male'}

print(dic.get('name'))

print(dic.get('name111'None))

 

# 執行結果:

# jay

# None

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章