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_