Python 列表

列表是Python中最常用的数据结构之一,就像一个可以装很多东西的"魔法盒子"。在Python中,列表可以存储多种类型的数据,并且可以动态添加或删除元素。

为什么使用列表?

想象一下,如果你有很多数据需要存储和管理:

  • 班级所有学生的名字
  • 一次考试的所有成绩
  • 购物清单
  • 游戏中的角色信息

使用列表可以轻松解决这些问题!

创建列表

创建列表非常简单,使用方括号[ ]将元素括起来,元素之间用逗号分隔:

# 创建空列表
empty_list = []

# 创建数字列表
numbers = [1, 2, 3, 4, 5]

# 创建字符串列表
fruits = ["苹果", "香蕉", "橙子"]

# 创建混合列表
mixed = [100, "Python", True, 3.14]

# 创建列表的列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
0
苹果
1
香蕉
2
橙子

访问列表元素

可以使用索引访问列表中的元素(索引从0开始):

fruits = ["苹果", "香蕉", "橙子"]

# 访问第一个元素
print(fruits[0]) # 输出: 苹果

# 访问第三个元素
print(fruits[2]) # 输出: 橙子

# 访问最后一个元素
print(fruits[-1]) # 输出: 橙子

# 访问嵌套列表
matrix = [[1, 2, 3], [4, 5, 6]]
print(matrix[0][1]) # 输出: 2
注意

尝试访问超出列表范围的索引会导致错误!

fruits = ["苹果", "香蕉", "橙子"]
# 以下代码会引发错误!
# print(fruits[3])

修改列表

列表是可变的数据结构,这意味着您可以更改列表中的元素:

fruits = ["苹果", "香蕉", "橙子"]

# 更改第二个元素
fruits[1] = "葡萄"
print(fruits) # 输出: ['苹果', '葡萄', '橙子']

# 更改最后一个元素
fruits[-1] = "西瓜"
print(fruits) # 输出: ['苹果', '葡萄', '西瓜']

添加列表元素

有几种方法可以向列表添加元素:

append()

在列表末尾添加单个元素

fruits.append('草莓')

extend()

将另一个列表的元素添加到当前列表

fruits.extend(['蓝莓', '樱桃'])

insert()

在指定位置插入元素

fruits.insert(1, '芒果')

添加元素示例

fruits = ["苹果", "香蕉", "橙子"]

# 添加单个元素
fruits.append("草莓")
print(fruits) # 输出: ['苹果', '香蕉', '橙子', '草莓']

# 添加多个元素
fruits.extend(["蓝莓", "樱桃"])
print(fruits) # 输出: ['苹果', '香蕉', '橙子', '草莓', '蓝莓', '樱桃']

# 在指定位置插入元素
fruits.insert(1, "芒果")
print(fruits) # 输出: ['苹果', '芒果', '香蕉', '橙子', '草莓', '蓝莓', '樱桃']

删除列表元素

同样有几种方法可以删除列表中的元素:

remove()

删除第一个匹配的元素

fruits.remove('香蕉')

pop()

删除指定索引处的元素(默认删除最后一个)

fruits.pop(2)

del

删除指定索引或切片

del fruits[1]

删除元素示例

fruits = ["苹果", "芒果", "香蕉", "橙子", "草莓"]

# 删除特定元素
fruits.remove("芒果")
print(fruits) # 输出: ['苹果', '香蕉', '橙子', '草莓']

# 删除索引为2的元素
removed = fruits.pop(2)
print(f"删除了: {removed}") # 输出: 删除了: 橙子
print(fruits) # 输出: ['苹果', '香蕉', '草莓']

# 删除最后一个元素
del fruits[-1]
print(fruits) # 输出: ['苹果', '香蕉']

列表切片

切片允许我们获取列表的一部分:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 获取前3个元素
print(numbers[:3]) # 输出: [0, 1, 2]

# 获取索引3到5的元素
print(numbers[3:6]) # 输出: [3, 4, 5]

# 获取最后3个元素
print(numbers[-3:]) # 输出: [7, 8, 9]

# 每隔一个元素取一个
print(numbers[::2]) # 输出: [0, 2, 4, 6, 8]

# 反转列表
print(numbers[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

遍历列表

可以使用for循环遍历列表中的每个元素:

fruits = ["苹果", "香蕉", "橙子"]

# 简单遍历
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 带索引的遍历
for index, fruit in enumerate(fruits):
    print(f"水果 #{index+1}: {fruit}")

# 输出结果:
# 我喜欢吃苹果
# 我喜欢吃香蕉
# 我喜欢吃橙子
# 水果 #1: 苹果
# 水果 #2: 香蕉
# 水果 #3: 橙子

常用列表方法

方法 说明 示例
len() 获取列表长度 len(fruits) → 3
sort() 对列表进行永久排序 fruits.sort()
sorted() 返回排序后的新列表 sorted(fruits)
reverse() 反转列表元素顺序 fruits.reverse()
index() 返回元素的索引位置 fruits.index("香蕉") → 1
count() 统计元素出现次数 fruits.count("苹果") → 1
copy() 创建列表的副本 new_list = fruits.copy()
clear() 清空列表 fruits.clear()

列表练习

尝试解决这些练习来巩固你的列表知识:

编程挑战

练习1:成绩统计

编写一个程序,统计学生成绩列表中:

  • 平均成绩
  • 最高分
  • 最低分
  • 不及格(低于60分)人数

示例:

成绩: [85, 92, 78, 90, 55, 67, 95] 输出: 平均分: 80.29 最高分: 95 最低分: 55 不及格人数: 1

练习2:列表排序

编写一个程序,让用户输入5个数字,然后:

  1. 按升序排序
  2. 按降序排序
  3. 排除重复数字

练习3:购物车系统

创建一个简单的购物车系统:

  • 显示商品列表
  • 添加商品到购物车
  • 从购物车移除商品
  • 计算总价格

练习4:矩阵操作

创建一个3x3矩阵(列表的列表),然后:

  • 计算对角线元素之和
  • 转置矩阵(行变为列)

示例:

矩阵: [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 对角线之和: 15 转置后: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

总结

关键知识点回顾

✓ 列表创建: 使用方括号[]创建列表

✓ 元素访问: 通过索引获取元素(从0开始)

✓ 修改列表: 列表是可变的,可以修改元素

✓ 添加元素: append(), extend(), insert()

✓ 删除元素: remove(), pop(), del

✓ 列表切片: 获取子列表

✓ 列表遍历: 使用for循环处理每个元素

✓ 常用方法: sort(), reverse(), len()

列表小测验

看看你是否掌握了这些知识:

  1. 如何创建一个包含三个元素的列表?
  2. 如何访问列表的最后一个元素?
  3. 向列表添加元素的三种方法是什么?
  4. 如何获取列表的长度?
  5. 如何反转列表的顺序?