Files
2025PY/数据容器操作指南.md
jycdt 6df85593a2 update README.md
更新数据容器类数据
2025-06-14 16:02:38 +08:00

317 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 数据容器操作指南
### 列表(List)
#### 特点
- 可变数据类型
- 有序
- 元素可重复
- 可以存储不同类型的元素
#### 增加操作
```
# append() 方法在列表的末尾添加一个元素。
list.append(obj)
# insert() 方法将指定对象插入到指定索引处。
list.insert(index, obj)
# extend() 方法用新列表扩展原列表。
list1.extend(list2)
```
#### 删除操作
```
# pop() 方法移除列表中指定索引位置的元素,默认为最后一个元素,并返回该元素。
list.pop([index=-1])
# remove() 方法移除列表中第一个匹配的指定值的元素。
list.remove(obj)
# clear() 方法用于清空列表。
list.clear()
# del 关键字可以删除列表或列表中的元素。
del list[index]
del list
```
#### 修改操作
```
# 直接通过索引修改元素。
list[index] = new_value
# 使用切片修改多个元素。
list[start:end] = iterable
```
#### 查询操作
```
# index() 方法返回指定元素在列表中的第一个索引位置。
list.index(obj)
# count() 方法统计某个元素在列表中出现的次数。
list.count(obj)
# in 运算符检查列表是否包含指定元素。
element in list
# len() 函数获取列表长度。
len(list)
# 使用索引访问元素。
list[index]
```
### 元组(Tuple)
#### 特点
- 不可变数据类型
- 有序
- 元素不可变
- 可以存储不同类型的元素
#### 增加/删除/修改操作
元组是不可变的,所以不支持增加、删除和修改操作。
#### 查询操作
```
# index() 方法返回指定元素在元组中的第一个索引位置。
tuple.index(obj)
# count() 方法统计某个元素在元组中出现的次数。
tuple.count(obj)
# in 运算符检查元组是否包含指定元素。
element in tuple
# len() 函数获取元组长度。
len(tuple)
# 使用索引访问元素。
tuple[index]
```
### 集合(Set)
#### 特点
- 可变数据类型
- 无序
- 元素唯一
- 不允许重复
#### 增加操作
```
# add() 方法向集合中添加一个元素。
set.add(obj)
# update() 方法用其他可迭代对象更新集合。
set.update(iterable)
```
#### 删除操作
```
# remove() 方法从集合中移除指定的元素。如果元素不存在,则引发 KeyError。
set.remove(obj)
# discard() 方法从集合中移除指定的元素。如果元素不存在,则不会引发异常。
set.discard(obj)
# pop() 方法随机移除并返回集合中的一个元素。
set.pop()
# clear() 方法清空集合。
set.clear()
# del 关键字可以删除集合。
del set
```
#### 修改操作
集合没有直接的修改操作,因为元素是唯一的且无序。
#### 查询操作
```
# in 运算符检查集合是否包含指定元素。
element in set
# len() 函数获取集合大小。
len(set)
```
### 字典(Dictionary)
#### 特点
- 可变数据类型
- 无序Python 3.7之前)
- 键必须是不可变类型且唯一
- 值可以是任意类型
#### 增加操作
```
# 直接赋值添加键值对。
dict[key] = value
# update() 方法用另一个字典或可迭代对象更新当前字典。
dict.update(other_dict)
```
#### 删除操作
```
# pop() 方法移除指定键并返回其对应的值。如果键不存在,则返回默认值或引发 KeyError。
dict.pop(key[, default])
# popitem() 方法移除并返回字典中的任意一个键值对。
dict.popitem()
# clear() 方法清空字典。
dict.clear()
# del 关键字可以删除字典或字典中的键值对。
del dict[key]
del dict
```
#### 修改操作
```
# 直接通过键修改值。
dict[key] = new_value
```
#### 查询操作
```
# get() 方法返回指定键的值,如果键不存在则返回默认值。
dict.get(key[, default])
# keys() 方法返回字典的所有键。
dict.keys()
# values() 方法返回字典的所有值。
dict.values()
# items() 方法返回字典的键值对元组列表。
dict.items()
# in 运算符检查字典是否包含指定键。
key in dict
# len() 函数获取字典的大小。
len(dict)
# 使用键访问值。
dict[key]
```
### 通用操作
- `in` 运算符:适用于所有数据容器,用于检查是否存在某个元素。
- `len()` 函数:适用于所有数据容器,用于获取容器的大小。
### 特有操作
- 列表特有:`append()`, `insert()`, `extend()`, `pop()`, `remove()`, `clear()`, 索引赋值等。
- 元组特有:由于不可变性,没有增加、删除、修改操作。
- 集合特有:`add()`, `update()`, `remove()`, `discard()`, `pop()`, `clear()` 等,主要用于处理唯一元素。
- 字典特有:`get()`, `keys()`, `values()`, `items()`, `pop()`, `popitem()` 等,主要用于处理键值对。
### 数据容器之间的相互转换
### 列表(List) 与其他类型转换
#### 列表转元组
```
# 使用 tuple() 函数将列表转换为元组。
tuple_from_list = tuple(list_example)
```
#### 列表转集合
```
# 使用 set() 函数将列表转换为集合,这会去除重复元素。
set_from_list = set(list_example)
```
#### 列表转字典
```
# 列表包含键值对元组时,可以使用 dict() 函数转换为字典。
dict_from_list = dict([(key1, value1), (key2, value2)])
```
### 元组(Tuple) 与其他类型转换
#### 元组转列表
```
# 使用 list() 函数将元组转换为列表。
list_from_tuple = list(tuple_example)
```
#### 元组转集合
```
# 使用 set() 函数将元组转换为集合,这会去除重复元素。
set_from_tuple = set(tuple_example)
```
#### 元组转字典
```
# 元组包含键值对元组时,可以使用 dict() 函数转换为字典。
dict_from_tuple = dict(tuple_example)
```
### 集合(Set) 与其他类型转换
#### 集合转列表
```
# 使用 list() 函数将集合转换为列表。结果的顺序是随机的。
list_from_set = list(set_example)
```
#### 集合转元组
```
# 使用 tuple() 函数将集合转换为元组。结果的顺序是随机的。
tuple_from_set = tuple(set_example)
```
#### 集合转字典
```
# 集合不能直接转换为字典,除非每个元素是一个键值对元组。
dict_from_set = dict((element for element in set_example if isinstance(element, tuple)))
```
### 字典(Dictionary) 与其他类型转换
#### 字典转列表
```
# 使用 list() 函数将字典的键、值或项转换为列表。
list_from_dict_keys = list(dict_example.keys())
list_from_dict_values = list(dict_example.values())
list_from_dict_items = list(dict_example.items())
```
#### 字典转元组
```
# 使用 tuple() 函数将字典的键、值或项转换为元组。
tuple_from_dict_keys = tuple(dict_example.keys())
tuple_from_dict_values = tuple(dict_example.values())
tuple_from_dict_items = tuple(dict_example.items())
```
#### 字典转集合
```
# 使用 set() 函数将字典的键、值或项转换为集合。
set_from_dict_keys = set(dict_example.keys())
set_from_dict_values = set(dict_example.values())
set_from_dict_items = set(dict_example.items())
```
### 总结
- **列表**:可以转换为其他所有数据容器类型。
- **元组**:可以转换为其他所有数据容器类型。
- **集合**:可以转换为列表、元组和字典(需要特殊条件)。
- **字典**:可以转换为列表、元组和集合。
此部分补充了Python中各种数据容器之间的相互转换方法帮助理解它们如何在不同场景下灵活应用。
### 总结
- **列表**:适合需要频繁增删改查的场景。
- **元组**:适合存储不变的数据。
- **集合**:适合需要确保元素唯一性的场景。
- **字典**:适合需要快速查找和关联数据的场景。
此文档提供了 Python 中四种主要数据容器的基本操作及其特点,帮助理解它们各自的用途和限制。