###一、数据容器概述
**数据容器**是Python中用于存储多个元素的数据类型,支持批量操作。根据是否允许重复元素、是否有序、是否可修改等特点,Python数据容器分为以下5类:
- **列表(list)**:可修改、有序、允许重复元素
- **元组(tuple)**:不可修改、有序、允许重复元素
- **字符串(str)**:不可修改、有序、存储字符序列
- **集合(set)**:可修改、无序、元素唯一
- **字典(dict)**:可修改、无序,存储键值对
---
## 二、各数据容器详解
### 1. 列表(list)
#### 定义与特点
- **定义**:`列表名 = [元素1, 元素2, ...]`
- **特点**:有序、可修改、允许重复元素、支持嵌套
#### 常用操作
```python
# 定义列表
ages = [21, 25, 21, 23, 22, 20]
# 追加元素
ages.append(31) # 末尾添加31
ages.extend([29, 33, 30]) # 末尾追加新列表
# 索引操作
print(ages[0]) # 取第一个元素:21
print(ages[-1]) # 取最后一个元素:30
# 查找元素下标
print(ages.index(31)) # 返回31的下标
# 遍历列表
for age in ages:
print(age)
2. 元组(tuple)
定义与特点
- 定义:
元组名 = (元素1, 元素2, ...)
- 特点:不可修改、有序、允许重复元素
案例
student = ('周杰轮', 11, ['football', 'music'])
# 查询年龄下标
print(student.index(11)) # 输出:1
# 修改嵌套列表中的元素
student[2].remove('football') # 删除football
student[2].append('coding') # 添加coding
3. 字符串(str)
定义与操作
- 特点:不可修改、有序、存储字符序列
s = "万过薪月,员序程马黑来,nohtyP学"
# 字符串替换与分割
print(s.count("it")) # 统计"it"出现次数
new_s = s.replace(" ", "|") # 替换空格为|
split_list = new_s.split("|") # 按|分割成列表
# 字符串逆序
result = s[::-1].split(",")[1][4:9] # 输出:"黑马程序员"
4. 集合(set)
定义与特点
- 定义:
集合名 = {元素1, 元素2, ...}
- 特点:无序、元素唯一、可修改
案例:去重
my_list = ['黑马程序员', '传智播客', '黑马程序员', ...]
unique_set = set()
for item in my_list:
unique_set.add(item)
print(unique_set) # 输出去重后的集合
5. 字典(dict)
定义与操作
- 定义:
字典名 = {key1: value1, key2: value2, ...}
- 特点:键值对存储、键不可重复
案例:员工信息管理
employees = {
"张三": {
"级别": 1, "薪水": 5000},
"李四": {
"级别": 2, "薪水": 8000}
}
for name in employees.keys():
if employees[name]["级别"] == 1:
employees[name]["级别"] += 1
employees[name]["薪水"] += 1000
print(employees)
三、通用操作与对比
1. 通用操作
- 遍历:所有容器均支持
for
循环 - 统计:
len(容器)
、max(容器)
、min(容器)
- 类型转换:
list()
、tuple()
、set()
2. 容器对比表
容器 | 有序性 | 可修改 | 重复元素 | 下标索引 | 适用场景 |
---|---|---|---|---|---|
列表 | ✔️ | ✔️ | ✔️ | ✔️ | 动态数据存储 |
元组 | ✔️ | ❌ | ✔️ | ✔️ | 不可变数据 |
字符串 | ✔️ | ❌ | ✔️ | ✔️ | 文本处理 |
集合 | ❌ | ✔️ | ❌ | ❌ | 去重、集合运算 |
字典 | ❌ | ✔️ | ❌ | ❌ | 键值对映射 |
四、综合案例
案例1:幸运数字筛选
num = int(input("输入数字:"))
nums = list(range(1, num+1))
lucky = [x for x in nums if x % 6 == 0]
print("原始列表:", nums)
print("幸运数字:", lucky)
案例2:讲师随机分配
import random
classrooms = [[], [], []]
teachers = ['A','B','C','D','E','F','G','H']
for teacher in teachers:
classroom = random.choice(classrooms)
classroom.append(teacher)
print(classrooms)
掌握Python数据容器的特点与操作,能大幅提升代码效率与可读性!建议结合实践加深理解。