Python基礎之字典的知識,內容包括 字典初識,字典的操作函數,字典其他擴展。其中,字典初識 包括 字典的認識,字典的作用和定義語法,字典的定義和取值,字典的基本使用-增刪改查;字典的操作函數包括 字典操作函數查看,字典操作實操,字典常用操作函數羅列,字典操作實操;字典其他擴展 包括 字典 迴圈遍... ...
字典初識
字典的認識
首先,我們來認識一下字典:
# 定義一個字典
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
print(user_dict)
# {'name': 'zhangsan', 'age': 20, 'height': 181}
字典的作用和定義語法
- 字典是除列表之外最靈活的數據類型;
- 字典同樣可以用來存儲多個數據,但字典通常用來存儲 描述一個物體的相關信息;
- 列表元組中我們更在意的是順序,按索引順序取值;在字典中我們更在意的是鍵和值;
- 列表元組有序,而字典無序;(補充一下,在pycharm運行下,其實基本都是按定義的鍵值對順序輸出的)
- 字典使用鍵值對存儲數據,幾對 鍵值對之間用逗號分隔;鍵key是索引,值value是數據;鍵和值之間用冒號:分隔;鍵必須是唯一的;值可以取任何數據類型,但鍵必須是字元串,數字或者元組。
字典的定義語法
變數名 = {"key1": "value1", "key2": "value2", "key3": "value3", ... }
eg:
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
字典的定義和取值
# 定義一個字典
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# 註意,字典是個無序的數據集合,字典的每次輸出的結果可能順序不一致
print(user_dict)
# 字典取值
print(user_dict["name"])
print(user_dict["height"])
字典的基本使用-增刪改查
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# 取值,註意,如果取值的key不存在,會報錯
print(user_dict["name"])
# 增加/修改
print(user_dict)
# 如果key不存在,會新增鍵值對;存在則進行修改
user_dict["gender"] = "man"
user_dict["age"] = 21
print(user_dict)
# 刪除,註意,如果刪除鍵值對 時key不存在,會報錯
user_dict.pop("height")
print(user_dict)
字典的操作函數
字典操作函數查看
在ipython3互動式下,定義一個空字典, 空字典. 按下tab鍵,即可查看;例如:
In [1]: user_dict = {}
In [2]: user_dict.
user_dict.clear user_dict.items user_dict.setdefault
user_dict.copy user_dict.keys user_dict.update
user_dict.fromkeys user_dict.pop user_dict.values
user_dict.get user_dict.popitem
In [2]: user_dict.
由此可見,字典的操作函數有:
user_dict.clear user_dict.items user_dict.setdefault
user_dict.copy user_dict.keys user_dict.update
user_dict.fromkeys user_dict.pop user_dict.values
user_dict.get user_dict.popitem
字典常用操作函數羅列
方法 | 描述 |
---|---|
len(dict) | 獲取字典的 鍵值對 數量 |
dict.keys() | 所有 key列表 |
dict.values() | 所有 value列表 |
dict.items() | 所有 (key,value)元組列表 |
dict[key] | 從字典取值,key不存在會報錯 |
dict.get(key) | 從字典取值,key不存在不會報錯 |
del dict[key] | 刪除指定鍵值對,key不存在會報錯 |
dict.pop(key) | 刪除指定鍵值對,key不存在會報錯 |
dict.pop(item) | 隨機刪除一個鍵值對 |
dict.clear() | 清空字典 |
dict[key] = value | key存在,修改value;key不存在,新增鍵值對 |
dict.setdefault(key, value) | key存在,不會修改value;key不存在,新增鍵值對 |
dict.update(dict2) | 將字典2的數據合併到字典1 |
字典操作實操
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# 1.統計鍵值對數量
print(len(user_dict)) # 3
# 2.合併字典
# 註意,如果被合併的字典2中有已經存在於字典1中的鍵值對,新的鍵值對會覆蓋原字典的
gender = {"gender": "man"}
user_dict.update(gender)
print(user_dict)
# {'name': 'zhangsan', 'age': 20, 'height': 181, 'gender': 'man'}
# 3.請空字典
user_dict.clear()
print(user_dict) # {}
字典其他擴展
字典 迴圈遍歷
遍歷 就是 依次從字典中獲取鍵值對;
但在實際開發中,由於字典的每一個鍵值對保存數據的數據類型時不一樣的,所以針對字典的迴圈遍歷的情況不怎麼多;
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# k 是每次迴圈中,獲取到的鍵值對的key
for k in user_dict:
print("%s: %s"% (k, user_dict[k]))
# name: zhangsan
# age: 20
# height: 181
字典的應用場景
- 使用 多個鍵值對,存儲描述一個物體的相關信息,描述更複雜的數據信息
將多個字典·1放在一個列表中,再進行遍歷,在迴圈內部針對每一個字典進行相同的處理;
students = [
{"name": "zhangsan", "age": 19, "height": 175},
{"name": "lisi", "age": 19, "height": 178}
]for stu in students:
# 字典是無序的,列表是有序的,所以會先輸出張三的字典,再輸出李四的字典,但字典內部順序不定
print(stu)
# {'name': 'zhangsan', 'age': 19, 'height': 175}
# {'name': 'lisi', 'age': 19, 'height': 178}