9.列表(List)操作

9.列表(List)操作

欢迎来到《10天学会Python》第5天!今天学习列表——Python中最常用的数据结构,像是能装各种物品的“数字背包”。

核心概念

列表是一个有序的、可变的数据容器,可以存储多个元素。想象你的书包:书本有固定位置(索引),可以随时取出或放入新书。

python

# 创建列表
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]
mixed = ["小明", 18, 1.75, True]  # 混合类型

重要特性

  • 有序:元素有固定位置,索引从0开始
  • 可变:可添加、删除、修改元素
  • 包容:可存储任意类型数据,包括其他列表

创建列表的三种方法

1. 直接创建(最常用)

python

shopping_list = ["牛奶", "面包", "鸡蛋"]

2. 使用list()函数转换

python

word_list = list("Python")  # 每个字符变成元素:['P', 'y', 't', 'h', 'o', 'n']

3. 列表生成式(简洁高效)

python

# 生成1-10的平方列表
squares = [x**2 for x in range(1, 11)]  # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 生成1-20中的偶数
evens = [x for x in range(1, 21) if x % 2 == 0]  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

索引与切片操作

正负索引访问

python

students = ["小明", "小红", "小刚", "小丽"]
first = students[0]   # "小明"(索引0是第一个)
last = students[-1]   # "小丽"(-1是最后一个)

切片获取子列表

切片语法:列表[开始:结束:步长](** 左闭右开 **)

python

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
nums[0:3]    # [0, 1, 2](索引0到2)
nums[:5]     # [0, 1, 2, 3, 4](从头到索引4)
nums[5:]     # [5, 6, 7, 8, 9](索引5到末尾)
nums[::2]    # [0, 2, 4, 6, 8](每隔一个取一个)
nums[::-1]   # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0](反转列表)

**记忆技巧 **:切片像切蛋糕,从"开始"位置切,到"结束"位置前停止。

常用列表方法详解

添加元素

python

todo = ["写作业", "跑步"]
todo.append("背单词")      # 末尾添加单个元素
todo.insert(1, "吃午饭")   # 在索引1处插入
todo.extend(["看电影"])    # 合并另一个列表

删除元素

python

fruits = ["苹果", "香蕉", "橙子", "葡萄"]
fruits.remove("香蕉")     # 删除第一个匹配的元素
removed = fruits.pop(1)   # 删除索引1的元素并返回
fruits.pop()              # 删除最后一个元素
fruits.clear()            # 清空列表

查找与统计

python

scores = [85, 92, 78, 85, 90]
first_85 = scores.index(85)  # 0(第一次出现的位置)
count_85 = scores.count(85)  # 2(出现次数)
has_90 = 90 in scores        # True(检查是否存在)

排序与反转

python

nums = [5, 2, 8, 1, 9]
nums.sort()                # 升序排序:[1, 2, 5, 8, 9]
nums.sort(reverse=True)    # 降序排序:[9, 8, 5, 2, 1]
nums.reverse()             # 反转列表顺序
sorted_nums = sorted(nums) # 返回新列表,不修改原列表

其他实用方法

python

copy_list = nums.copy()    # 创建列表副本
length = len(nums)         # 获取列表长度
maximum = max(nums)        # 最大值
minimum = min(nums)        # 最小值

实践应用:智能购物清单

python

# 初始化清单
shopping = ["牛奶", "面包", "鸡蛋"]

# 显示清单
print("🛒 购物清单:")
for i, item in enumerate(shopping, 1):
    print(f"  {i}. {item}")

# 添加商品
new_item = input("请输入要添加的商品:")
shopping.append(new_item)
print(f"✅ 已添加:{new_item}")

# 搜索商品
keyword = input("搜索关键词:")
results = [item for item in shopping if keyword in item]
print(f"🔍 找到{len(results)}个匹配:{results}")

# 排序
shopping.sort()
print("📊 排序后:", shopping)

**功能亮点 **:使用 enumerate()显示编号,列表推导式快速搜索,完整CRUD操作。

练习题

练习1:基础操作

创建 students = ["小明", "小红", "小刚", "小丽", "小华"]

  1. 添加"小强"到末尾
  2. 在第三位插入"转校生"
  3. 删除最后一名同学
  4. 找出"小红"的位置
  5. 统计有几个"小红"

练习2:成绩处理

scores = [88, 92, 78, 85, 95, 88, 76]

  1. 计算平均分(总分÷人数)
  2. 找出最高分和最低分
  3. 将成绩从高到低排序
  4. 统计90分以上的人数
  5. 去掉一个最低分,重新计算平均分

练习3:智能分类

items = ["苹果", "香蕉", "铅笔", "橡皮", "橙子", "尺子", "葡萄"]

  1. 将水果和文具分成两个列表
  2. 统计每种水果的数量
  3. 按字母顺序排列水果列表
  4. 创建字典 {"水果": 水果列表, "文具": 文具列表}

练习4:列表推导式

  1. 生成1-20中所有3的倍数
  2. ["hello", "world"]转为全大写
  3. [1,2,3,4,5,6,7,8,9,10]中筛选出平方大于50的数

总结

列表是Python编程的**瑞士军刀 **,掌握它你能高效管理数据集合。重点:

  • 索引从0开始,切片左闭右开
  • append()/insert()/remove()/pop()修改列表
  • sort()/sorted()排序,reverse()反转
  • 列表推导式让代码简洁

明天学习元组和集合,了解不可变容器和唯一性集合!


学习建议:多动手练习,尝试用列表解决记账、课表管理等实际问题。

8.循环语句(for、while) 2026-01-21
10.元组与集合 2026-01-21

评论区