您好,登錄后才能下訂單哦!
前面的課程講解了字符串str/列表list/元組tuple,還有最后一種比較重要的數據類型也需要介紹介紹,那就是python字典,俗稱:dict.
?
python中的字典可與字符串/列表/元組不同,因為字典dict需要由兩部分組成,分別是key和value,簡稱:鍵值對,下面具體講解一下關于字典的特點:
1.由一個或者多個鍵值對構成,鍵值對的類型可以不相同也可以相同;
2.字典中的鍵值對需要寫在{}中括號內部,鍵值對中的key和value用:隔開,鍵值對與鍵值對之間用逗號隔開;
3.字典是一個無序的集合;
4.字典中key具有唯一性;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解憂 @Blog(個人博客地址): shuopython.com @WeChat Official Account(微信公眾號):猿說python @Github:www.github.com ? @File:python_dict.py @Time:2019/9/27 20:45 ? @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! """ ? dict1 = dict() # 定義一個空字典 print(dict1) print(type(dict1)) # 輸出字典類型 dict print(len(dict1)) # 獲取字典鍵值對數量 ? ? print("***"*20) # 小竅門:直接打印60 個 * #字典可以有一個或者多個鍵值對構成,鍵值對與鍵值對之間使用逗號隔開 # "name" / "age" / "sing_gou" 是key # "隔壁老王" / 42 / True 是value dict2 = {"name":"隔壁老王", "age":42, "singe_dog":True} print(dict2) print(type(dict2)) # 輸出字典類型 dict print(len(dict2)) # 獲取字典鍵值對數量 ? print("***"*20) # 小竅門:直接打印60 個 * # 字典中出現了兩個一樣的key:"age",默認后面的value會覆蓋前面的value dict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15} print(dict3) |
輸出:
1 2 3 4 5 6 7 8 9 | {} <class 'dict'> 0 ************************************************************ {'name': '隔壁老王', 'age': 42, 'singe_dog': True} <class 'dict'> 3 ************************************************************ {'name': '隔壁老王', 'age': 15, 'singe_dog': True} |
注意:如果字典中出現相同的key值,只有最后一個key/value有效,前面相同的key/value會被覆蓋.這就是字典dict所謂的唯一性.
?
在python開發過程中,對于字典使用最多的莫過于增刪改查以及遍歷,下面我們一一講解:
如果想要在字典中添加數據,直接賦值就可以,比較簡單,跟上示例代碼演示一波:
1 2 3 4 5 6 7 | dict1 = dict() # 定義一個空字典 print(dict1) # 輸出一個空的字典 dict1["name"] = "猿說python" # 添加鍵值對 "name":"猿說python" 到 dict1 dict1["url"] = "shuopython.com" # 添加鍵值對 "url":"shuopython.com" 到 dict1 ? print(len(dict1)) # 獲取字典鍵值對數量 print(dict1) # 輸出整個字典 |
輸出結果:
1 2 3 | {} 2 {'name': '猿說python', 'url': 'shuopython.com'} |
?
字典是無序的,每個鍵值對沒有對應的索引值,這也是字典與字符串/列表/元祖的區別。刪除字典中的數據,需要根據鍵值對中的key值來刪除對應的鍵值對,刪除使用?del?關鍵字,實例代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定義一個字典 print(dict1) # 輸出刪除之前的字典 ? # 刪除key等于"name"對應的鍵值對 del dict1["name"] print(dict1) ? # 刪除key等于"age"對應的鍵值對 del dict1["age"] print(dict1) ? # 刪除key等于"sing_dog"對應的鍵值對 del dict1["sing_dog"] print(dict1) |
輸出結果:
1 2 3 4 | {'name': 'zhangsan', 'age': 38, 'sing_dog': True} {'age': 38, 'sing_dog': True} {'sing_dog': True} {} |
?
字典是無序的,每個鍵值對沒有對應的索引值,這也是字典與字符串/列表/元祖的區別。修改字典中的鍵值對數據,操作和刪除數據一樣,直接根據鍵值對中的key值操作即可,實例代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定義一個字典 print(dict1) # 輸出字典 ? # 修改key等于"name"對應的value dict1["name"] = "隔壁老王" print(dict1) # 輸出字典 ? # 修改key等于"age"對應的value dict1["age"] = 18 print(dict1) # 輸出字典 ? # 修改key等于"sing_dog"對應的value dict1["sing_dog"] = False print(dict1) # 輸出字典 |
輸出結果:
1 2 3 4 | {'name': 'zhangsan', 'age': 38, 'sing_dog': True} {'name': '隔壁老王', 'age': 38, 'sing_dog': True} {'name': '隔壁老王', 'age': 18, 'sing_dog': True} {'name': '隔壁老王', 'age': 18, 'sing_dog': False} |
?
字典是無序的,每個鍵值對沒有對應的索引值,這也是字典與字符串/列表/元祖的區別。查詢字典中的鍵值對數據,操作和刪除數據/修改數據一樣,直接根據鍵值對中的key值操作即可,實例代碼如下:
1 2 3 4 5 6 7 8 9 10 11 | dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定義一個字典 print(dict1) # 輸出字典 ? # 查詢key等于"name"對應的value print(dict1["name"]) ? # 查詢key等于"age"對應的value print(dict1["age"]) ? # 查詢key等于"sing_dog"對應的value print(dict1["sing_dog"]) |
輸出結果:
1 2 3 4 | {'name': 'zhangsan', 'age': 38, 'sing_dog': True} zhangsan 38 True |
?
示例代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | dict1 = {"name":"zhangsan","age":38} # 定義一個字典 print(dict1) # 輸出字典 dict2 = {"sing_dog":True} # 定義一個字典 print(dict2) ? print("***"*20) # 小竅門:直接答應60個* # update()函數:將一個字典添加到另外一個字典的末尾 dict1.update(dict2) print(dict1) # 輸出字典 ? print("***"*20) # 小竅門:直接答應60個* # 情況字典dict1 dict1.clear() print(dict1) # 空字典 # 情況字典dict2 dict2.clear() print(dict2) # 空字典 |
輸出效果:
1 2 3 4 5 6 7 | {'name': 'zhangsan', 'age': 38} {'sing_dog': True} ************************************************************ {'name': 'zhangsan', 'age': 38, 'sing_dog': True} ************************************************************ {} {} |
?
?
1 2 3 4 5 6 7 8 9 10 11 12 | dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定義一個字典 print(dict1) # 輸出字典 ? print("***"*20) # 小竅門:直接答應60個* # dict.items()方法,返回元組數據,類似遍歷元組操作 for x in dict1.items(): ????print(x,type(x)) ? print("***" * 20)??# 小竅門:直接答應60個* # dict.items()方法經典寫法,直接獲取key/values for x,y in dict1.items(): ????print(x,y) |
輸出結果:
1 2 3 4 5 6 7 8 9 10 11 | {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'} ************************************************************ ('name', 'zhangsan') <class 'tuple'> ('age', 38) <class 'tuple'> ('sing_dog', True) <class 'tuple'> ('height', '155cm') <class 'tuple'> ************************************************************ name zhangsan age 38 sing_dog True height 155cm |
?
1 2 3 4 5 6 7 8 9 10 11 12 | dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定義一個字典 print(dict1) # 輸出字典 ? print("***"*20) # 小竅門:直接答應60個* # 方法一:根據key值遍歷 for key in dict1.keys(): ????print(key ,dict1[key])??# dict1[key] 等價鍵值對中key對應的value ? print("***"*20) # 小竅門:直接答應60個* # 方法二:根據value值遍歷 for value in dict1.values(): ????print(value ) |
輸出結果:
1 2 3 4 5 6 7 8 9 10 11 | {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'} ************************************************************ name zhangsan age 38 sing_dog True height 155cm ************************************************************ zhangsan 38 True 155cm |
?
1.注意字典的特點
2.注意字典/字符串/列表/元組的區別
3.注意字典的遍歷方式
4.注意字典/字符串/列表/元組之間的相互轉換
?
?
1.python字符串(str)
2.python列表(list)
3.python元組(tuple)
?
轉載請注明:猿說Python???python 字典dict
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。