第六章:Python数据容器详解:列表、元组、字符串、集合、字典


###一、数据容器概述
**数据容器**是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数据容器的特点与操作,能大幅提升代码效率与可读性!建议结合实践加深理解。

猜你喜欢

转载自blog.csdn.net/2402_88135437/article/details/146709794
今日推荐