Python列表基础

列表是Python中最常用的数据结构之一,它可以存储任意类型的数据,并且支持动态增删改查。通过本教程,你将全面掌握Python列表的使用方法。

列表简介

列表是Python中最基础和最常用的数据结构,它具有以下特点:

  • 可以存储任意类型的数据(数字、字符串、对象等)
  • 元素有序排列,可以通过索引访问
  • 支持动态增删改查操作
  • 可以嵌套,形成多维列表

创建列表


# 1. 使用方括号创建空列表
empty_list = []

# 2. 使用list()函数创建空列表
another_empty = list()

# 3. 创建包含元素的列表
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]

# 4. 使用列表推导式创建列表
squares = [x**2 for x in range(5)]  # [0, 1, 4, 9, 16]

# 5. 创建多维列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
                        

提示:

创建多维列表时要注意浅拷贝和深拷贝的问题,使用 * 运算符复制列表可能会导致意外结果。

访问元素


numbers = [1, 2, 3, 4, 5]

# 1. 使用索引访问单个元素
first = numbers[0]      # 1
last = numbers[-1]      # 5

# 2. 使用切片访问多个元素
subset = numbers[1:4]   # [2, 3, 4]
reversed = numbers[::-1]  # [5, 4, 3, 2, 1]

# 3. 遍历列表
for num in numbers:
    print(num)

# 4. 使用enumerate()同时获取索引和值
for index, value in enumerate(numbers):
    print(f"索引 {index}: {value}")
                        

修改列表


fruits = ['apple', 'banana', 'orange']

# 1. 修改单个元素
fruits[1] = 'grape'     # ['apple', 'grape', 'orange']

# 2. 添加元素
fruits.append('mango')  # 在末尾添加
fruits.insert(1, 'pear')  # 在指定位置插入

# 3. 删除元素
fruits.remove('apple')  # 删除指定元素
del fruits[0]          # 删除指定位置的元素
popped = fruits.pop()  # 删除并返回最后一个元素

# 4. 使用切片修改多个元素
fruits[1:3] = ['kiwi', 'lemon']
                        

常用方法


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

# 1. 排序
numbers.sort()              # 原地排序
sorted_nums = sorted(numbers)  # 返回新列表

# 2. 反转
numbers.reverse()

# 3. 计数和查找
count = numbers.count(5)    # 统计元素出现次数
index = numbers.index(4)    # 查找元素位置

# 4. 列表操作
numbers.extend([8, 7])      # 扩展列表
numbers.clear()             # 清空列表

# 5. 复制列表
copy1 = numbers.copy()      # 浅拷贝
import copy
copy2 = copy.deepcopy(numbers)  # 深拷贝
                        

高级操作


# 1. 列表推导式进阶
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [x for row in matrix for x in row]  # 扁平化列表

# 2. 条件筛选
evens = [x for x in range(10) if x % 2 == 0]

# 3. 使用zip()合并列表
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
pairs = list(zip(names, ages))  # [('Alice', 25), ('Bob', 30), ('Charlie', 35)]

# 4. 使用map()和filter()
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers))
odds = list(filter(lambda x: x % 2 == 1, numbers))
                        

练习题

基础练习

  1. 创建一个包含1到10的列表,然后打印出所有偶数。
  2. 将两个列表合并,并删除重复元素。
  3. 找出列表中的最大值和最小值,不使用max()和min()函数。

进阶练习

  1. 实现列表的冒泡排序算法。
  2. 将一个多维列表转换为一维列表。
  3. 找出列表中出现次数最多的元素。

学习路径:

列表 → 元组 → 字典 → 集合