Python字典用法
Python中的字典是一種可變容器模型,用于存儲鍵值對。字典中的鍵必須是唯一的,而值可以不唯一。字典是無序的,即字典中的元素沒有順序。
_x000D_字典的特點:
_x000D_- 字典中的鍵必須是唯一的;
_x000D_- 字典中的鍵必須是不可變的,如字符串、數字或元組;
_x000D_- 字典中的值可以是任意類型的,如字符串、數字、列表、元組、字典等;
_x000D_- 字典是無序的。
_x000D_字典的創建
_x000D_在Python中,可以使用花括號 {} 或 dict() 函數來創建一個字典。
_x000D_示例:
_x000D_`python
_x000D_# 使用花括號創建字典
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_print(person)
_x000D_# 使用 dict() 函數創建字典
_x000D_person = dict(name='張三', age=18, gender='男')
_x000D_print(person)
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_{'name': '張三', 'age': 18, 'gender': '男'}
_x000D_{'name': '張三', 'age': 18, 'gender': '男'}
_x000D_ _x000D_字典的訪問
_x000D_可以使用字典的鍵來訪問字典中的值。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_print(person['name'])
_x000D_print(person['age'])
_x000D_print(person['gender'])
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_張三
_x000D_18
_x000D_ _x000D_如果訪問不存在的鍵,則會拋出 KeyError 異常。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_print(person['height'])
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_KeyError: 'height'
_x000D_ _x000D_可以使用 get() 方法來訪問字典中的值,如果鍵不存在,則返回 None 或指定的默認值。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_print(person.get('name'))
_x000D_print(person.get('height'))
_x000D_print(person.get('height', '未知'))
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_張三
_x000D_None
_x000D_未知
_x000D_ _x000D_字典的修改和刪除
_x000D_可以使用賦值語句來修改字典中的值。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_person['age'] = 20
_x000D_print(person)
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_{'name': '張三', 'age': 20, 'gender': '男'}
_x000D_ _x000D_可以使用 del 語句來刪除字典中的鍵值對。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_del person['age']
_x000D_print(person)
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_{'name': '張三', 'gender': '男'}
_x000D_ _x000D_字典的遍歷
_x000D_可以使用 for 循環來遍歷字典中的鍵值對。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_for key, value in person.items():
_x000D_print(key, value)
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_name 張三
_x000D_age 18
_x000D_gender 男
_x000D_ _x000D_可以使用 for 循環來遍歷字典中的鍵。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_for key in person.keys():
_x000D_print(key)
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_name
_x000D_age
_x000D_gender
_x000D_ _x000D_可以使用 for 循環來遍歷字典中的值。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_for value in person.values():
_x000D_print(value)
_x000D_ _x000D_輸出結果:
_x000D_ _x000D_張三
_x000D_18
_x000D_ _x000D_字典的常用方法
_x000D_- clear():清空字典;
_x000D_- copy():復制字典;
_x000D_- fromkeys():創建一個新字典,其中包含指定的鍵和值,默認值為 None;
_x000D_- items():返回一個包含所有鍵值對的元組列表;
_x000D_- keys():返回一個包含所有鍵的列表;
_x000D_- values():返回一個包含所有值的列表;
_x000D_- pop():刪除指定鍵并返回對應的值;
_x000D_- popitem():隨機刪除一個鍵值對并返回對應的鍵和值;
_x000D_- setdefault():獲取指定鍵的值,如果鍵不存在,則返回指定的默認值,并將其插入到字典中;
_x000D_- update():將指定字典中的鍵值對添加到當前字典中。
_x000D_示例:
_x000D_`python
_x000D_person = {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_print(person.clear()) # None
_x000D_print(person.copy()) # {'name': '張三', 'age': 18, 'gender': '男'}
_x000D_print(dict.fromkeys(['name', 'age', 'gender'])) # {'name': None, 'age': None, 'gender': None}
_x000D_print(person.items()) # dict_items([('name', '張三'), ('age', 18), ('gender', '男')])
_x000D_print(person.keys()) # dict_keys(['name', 'age', 'gender'])
_x000D_print(person.values()) # dict_values(['張三', 18, '男'])
_x000D_print(person.pop('age')) # 18
_x000D_print(person.popitem()) # ('gender', '男')
_x000D_print(person.setdefault('name', '未知')) # 張三
_x000D_print(person.setdefault('height', 180)) # 180
_x000D_print(person) # {'name': '張三', 'height': 180}
_x000D_person.update({'age': 20, 'gender': '男'})
_x000D_print(person) # {'name': '張三', 'height': 180, 'age': 20, 'gender': '男'}
_x000D_ _x000D_問答
_x000D_1. 字典中的鍵必須是唯一的嗎?
_x000D_是的,字典中的鍵必須是唯一的。
_x000D_2. 字典中的鍵可以是什么類型?
_x000D_字典中的鍵必須是不可變的,如字符串、數字或元組。
_x000D_3. 如何訪問字典中的值?
_x000D_可以使用字典的鍵來訪問字典中的值,如 person['name']。
_x000D_4. 如何修改字典中的值?
_x000D_可以使用賦值語句來修改字典中的值,如 person['age'] = 20。
_x000D_5. 如何刪除字典中的鍵值對?
_x000D_可以使用 del 語句來刪除字典中的鍵值對,如 del person['age']。
_x000D_6. 如何遍歷字典中的鍵值對?
_x000D_可以使用 for 循環和 items() 方法來遍歷字典中的鍵值對,如 for key, value in person.items():。
_x000D_7. 如何獲取字典中的鍵或值?
_x000D_可以使用 for 循環和 keys() 或 values() 方法來遍歷字典中的鍵或值,如 for key in person.keys(): 或 for value in person.values():。
_x000D_8. 如何清空字典?
_x000D_可以使用 clear() 方法來清空字典,如 person.clear()。
_x000D_9. 如何復制字典?
_x000D_可以使用 copy() 方法或 dict() 函數來復制字典,如 person.copy() 或 dict(person)。
_x000D_10. 如何創建一個新字典?
_x000D_可以使用 fromkeys() 方法來創建一個新字典,如 dict.fromkeys(['name', 'age', 'gender'])。
_x000D_