Python字典操作全攻略:从入门到精通,玩转字典
发布时间: 2024-06-25 15:48:01 阅读量: 75 订阅数: 42
Python 字典(Dictionary)操作详解
![Python字典操作全攻略:从入门到精通,玩转字典](https://ucc.alicdn.com/pic/developer-ecology/1462ebf0d4b14051a076458c8a4f3de8.png?x-oss-process=image/resize,s_500,m_lfit)
# 1. Python字典基础
字典是Python中一种重要的数据结构,它是一种无序的键值对集合。字典的键是唯一的,并且可以是任何不可变类型(如字符串、数字、元组),而值可以是任何类型。
要创建字典,可以使用字面量表示法或构造函数。字面量表示法使用大括号{},键值对之间用冒号分隔,如:
```python
my_dict = {"name": "John", "age": 30}
```
构造函数dict()也可以用来创建字典,它接受一个键值对序列作为参数,如:
```python
my_dict = dict([("name", "John"), ("age", 30)])
```
# 2. Python字典操作技巧
### 2.1 字典的创建和初始化
#### 2.1.1 字典的字面量表示法
字典可以使用字面量表示法创建,即使用大括号 {} 括起来,键值对之间用冒号 : 分隔,键值对之间用逗号 , 分隔。例如:
```python
my_dict = {"name": "John Doe", "age": 30, "city": "New York"}
```
#### 2.1.2 字典的构造函数
也可以使用 `dict()` 构造函数创建字典,该函数接受一个可迭代对象作为参数,该对象包含键值对元组。例如:
```python
my_dict = dict([("name", "John Doe"), ("age", 30), ("city", "New York")])
```
### 2.2 字典的访问和修改
#### 2.2.1 访问字典中的元素
可以使用方括号 [] 访问字典中的元素,其中方括号内的表达式为字典的键。例如:
```python
name = my_dict["name"]
```
如果字典中不存在指定的键,则会引发 `KeyError` 异常。为了避免异常,可以使用 `get()` 方法,该方法在找不到键时返回 `None`。例如:
```python
name = my_dict.get("name")
if name is not None:
print(name)
else:
print("Key not found")
```
#### 2.2.2 修改字典中的元素
可以使用方括号 [] 修改字典中的元素,其中方括号内的表达式为字典的键。例如:
```python
my_dict["age"] = 31
```
如果字典中不存在指定的键,则会创建一个新的键值对。
### 2.3 字典的遍历和迭代
#### 2.3.1 遍历字典中的键
可以使用 `keys()` 方法遍历字典中的键,该方法返回一个包含字典所有键的视图对象。例如:
```python
for key in my_dict.keys():
print(key)
```
#### 2.3.2 遍历字典中的值
可以使用 `values()` 方法遍历字典中的值,该方法返回一个包含字典所有值的视图对象。例如:
```python
for value in my_dict.values():
print(value)
```
#### 2.3.3 遍历字典中的键值对
可以使用 `items()` 方法遍历字典中的键值对,该方法返回一个包含字典所有键值对的视图对象。例如:
```python
for key, value in my_dict.items():
print(key, value)
```
# 3. Python字典进阶应用
### 3.1 字典的合并和更新
#### 3.1.1 字典的合并
Python提供了两种合并字典的方式:
- `update()`方法:将另一个字典中的键值对添加到当前字典中,如果当前字典中已存在相同的键,则用新字典中的值替换。
```python
dict1 = {'name': 'John', 'age': 30}
dict2 = {'city': 'New York', 'job': 'Software Engineer'}
dict1.update(dict2)
print(dict1) # 输出:{'name': 'John', 'age': 30, 'city': 'New York', 'job': 'Software Engineer'}
```
- `dict.copy()`方法:创建一个新字典,该字典包含当前字典和另一个字典的合并结果。
```python
dict3 = dict1.copy()
dict3.update(dict2)
print(dict3) # 输出:{'name': 'John', 'age': 30, 'city': 'New York', 'job': 'Software Engineer'}
```
#### 3.1.2 字典的更新
`update()`方法还可以用于更新当前字典中的键值对,如果当前字典中已存在相同的键,则用新值替换。
```python
dict1 = {'name': 'John', 'age': 30}
dict1.update({'age': 31, 'city': 'New York'})
print(dict1) # 输出:{'name': 'John', 'age': 31, 'city': 'New York'}
```
### 3.2 字典的排序和筛选
#### 3.2.1 字典的排序
Python提供了多种方法对字典进行排序:
- `sorted(dict.keys())`:按字典键的顺序返回一个排序后的列表。
- `sorted(dict.values())`:按字典值的顺序返回一个排序后的列表。
- `sorted(dict.items())`:按字典键值对的顺序返回一个排序后的列表。
```python
dict1 = {'name': 'John', 'age': 30, 'city': 'New York'}
print(sorted(dict1.keys())) # 输出:['age', 'city', 'name']
print(sorted(dict1.values())) # 输出:[30, 'New York', 'John']
print(sorted(dict1.items())) # 输出:[('age', 30), ('city', 'New York'), ('name', 'John')]
```
#### 3.2.2 字典的筛选
Python提供了多种方法对字典进行筛选:
- `dict.get(key, default)`:获取字典中指定键的值,如果键不存在,则返回默认值。
- `dict.pop(key, default)`:删除字典中指定键并返回其值,如果键不存在,则返回默认值。
- `dict.popitem()`:删除字典中的最后一个键值对并返回其值。
```python
dict1 = {'name': 'John', 'age': 30, 'city': 'New York'}
print(dict1.get('name')) # 输出:John
print
```
0
0