Python字典是内置的、可变且无序的数据结构,适用于存储键值对。以下是其核心用法及注意事项:
一、基础语法
创建字典
- 使用花括号 `{}` 直接定义:
```python
my_dict = {'name': 'Alice', 'age': 25}
```
- 使用 `dict()` 函数:
```python
my_dict = dict(name='Bob', age=30)
```
- 通过可迭代对象创建:
```python
d = dict([('a', 1), ('b', 2)])
```
访问元素
- 通过键直接访问:
```python
print(my_dict['name']) 输出: Alice
```
- 使用 `get()` 方法避免 `KeyError`:
```python
print(my_dict.get('age')) 输出: 25
print(my_dict.get('gender', '未知')) 输出: 未知
```
修改元素
- 直接赋值添加或修改:
```python
my_dict['email'] = 'alice@example.com' 添加新键值对
my_dict['age'] = 26 修改已有键值对
```
二、常用操作
添加/删除键值对
- 添加:`my_dict['new_key'] = 'value'`
- 删除:`del my_dict['key']`
清空字典
- `my_dict.clear()`
复制字典
- 浅拷贝:`d2 = d1.copy()`
- 深拷贝:`d3 = copy.deepcopy(d1)`
从可迭代对象创建字典
- `dict.fromkeys(keys)`
- `dict(zip(keys, values))`
三、注意事项
键的约束
- 必须是不可变类型(如字符串、数字、元组)
- 同一字典中键不可重复
字典推导式
- 简洁创建字典:
```python
squares = {x: x 2 for x in range(5)} {0:0, 1:1, 2:4, 3:9, 4:16} ``` 性能优化
- 访问速度快于列表(平均时间复杂度O(1))
- 适合需要频繁查找、修改的场景(如商品库存、员工绩效)
四、实战示例
商品库存管理
```python
inventory = {'手机': [5000, 100], '电脑': [8000, 50]}
def update_stock(item, quantity, operation="add"):
if operation == "add":
inventory[item] = [price, stock + quantity]
elif operation == "remove":
if item in inventory and inventory[item] >= quantity:
inventory[item] = [price, stock - quantity]
return inventory
示例:添加库存
inventory = update_stock('手机', 50, 'add')
print(inventory) 输出: {'手机': [5000, 150]}
示例:减少库存
inventory = update_stock('手机', 20, 'remove')
print(inventory) 输出: {'手机': [5000, 130]}
```
员工绩效统计
```python
employees = {'张三': [85, 22], '李四': [70, 18]}
def calculate_performance(employees):
return {name: score + attendance for name, (score, attendance) in employees.items()}
示例:计算总绩效
performance = calculate_performance(employees)
print(performance) 输出: {'张三': 103, '李四': 88}
```
通过以上方法,字典可灵活应对数据存储、查询和更新需求,是Python中不可或缺的数据结构。