最近在整理Python基礎語法部分的筆記,準備邊整理邊分享。本篇是關於字典dict{A:B}的筆記。
Python常用的8種經典數據結構:
字典的形式為{A:a,B:b,……},其元素形式為鍵值對 A:a(B:b) ,其中冒號之前的 AB 被稱為 「鍵(key)」,冒號之後的 ab被 稱為 「值(value)」
字典是鍵值對的集合,鍵值對之間無序
在字典中通過鍵來索引值
映射的表達。例如統計數據的出現次數,數據是鍵,次數是值
最主要的作用:表達鍵值對數據,進而操作它們
元素的遍歷
student_1 = {"Name":"梵宇","Age":"19","Sex":"男","school":"復旦"}也可以使用zip方法創建字典。zip()方法將兩個列表對應位置的元素組成元組,這些元組構成新的列表,以zip對象的形式儲存。該zip對象可以幫助我們快速構築字典。
student_2_key = ["Name","Age","Sex","school"] student_1_value = ["亞楠","18","女","北理"] student_2_zip = zip(student_2_key,student_1_value) student_2 = dict(student_2_zip) print("student_2_zip:",student_2_zip) print("student_2:",student_2)student_2_zip: <zip object at 0x000002D1FBE796C0>student_2: {'Name': '亞楠', 'Age': '18', 'Sex': '女', 'school': '北理'}可以通過字典的嵌套實現多重映射。之前我們創建了兩個字典student_1和student_2,每個字典中以鍵值對的形式儲存了某個學生的信息。我們可以再創建一個字典students,並在students中建立編號ID與單個學生的映射關係。students = {"01":student_1, "02":student_2}print(students){'01': {'Name': '梵宇', 'Age': '19', 'Sex': '男', 'school': '復旦'}, '02': {'Name': '亞楠', 'Age': '18', 'Sex': '女', 'school': '北理'}}print("訪問student_1的Name:",student_1["Name"]) #通過索引訪問print("訪問student_2的Age:",student_2.get("Age")) #通過get方法訪問print("訪問student_2的ID:",student_2.get("ID","不存在")) #get方法第二個參數指定了當鍵不存在時返回的值訪問student_1的Name:梵宇訪問student_2的Age:18訪問student_2的ID:不存在students["01"]["Name"] #訪問字典students中編號01的student的Name通過索引的方式進行鍵值對的增加和更改
student_3 = {"Name":"書文", "Age":"19", "Sex":"女"}student_3["school"] = "北郵" students["03"] = student_3 print(student_3) print(students){'Name': '書文', 'Age': '19', 'Sex': '女', 'school': '北郵'}{'01': {'Name': '梵宇', 'Age': '19', 'Sex': '男', 'school': '復旦'}, '02': {'Name': '亞楠', 'Age': '18', 'Sex': '女', 'school': '北理'}, '03': {'Name': '書文', 'Age': '19', 'Sex': '女', 'school': '北郵'}}使用 del dic[k] 的方式刪除字典dic中鍵k對應的鍵值對
使用 dic.pop() 方法刪除並返回dic中某個鍵值對
使用 dic.clear() 方法刪除dic中所有鍵值對
使用del的方式刪除第二個學生的信息
del students["02"] print(students){'01': {'Name': '梵宇', 'Age': '19', 'Sex': '男', 'school': '復旦'}, '03': {'Name': '書文', 'Age': '19', 'Sex': '女', 'school': '北郵'}}使用.pop()方法刪除第一個學生的信息
students.pop("01") print(students){'03': {'Name': '書文', 'Age': '19', 'Sex': '女', 'school': '北郵'}}使用.clear()方法清空students字典
students.clear() print(students)print(student_1.keys()) print(student_1.values()) print(student_1.items()) print(student_1.popitem()) print(len(student_1))dict_keys(['Name', 'Age', 'Sex', 'school'])dict_values(['梵宇', '19', '男', '復旦'])dict_items([('Name', '梵宇'), ('Age', '19'), ('Sex', '男'), ('school', '復旦')])('school', '復旦')3字典的鍵和值各自可單獨被轉換為List類型。
print("字典鍵轉list",list(student_1.keys()))print("字典值轉list",list(student_1.values()))print("字典鍵轉list",list(student_1.keys()))print("字典值轉list",list(student_1.values()))字典鍵轉list ['Name', 'Age', 'Sex']字典值轉list ['梵宇', '19', '男'][1]董付國.Python程序設計基礎(第二版)[M].北京:清華大學出版社,2015:42-59[2]劉經緯,陳佳明.創新創業+新工科教學質量提升研究——零基礎學會Python人工智慧[M].北京:首都經濟貿易大學出版社,2020:25-26[3]嵩天.PYE6.2-序列類型及操作v2.5[Z].2020