当前位置:首页>python>【Python基础学习6】列表与元组

【Python基础学习6】列表与元组

  • 2026-09-10 02:05:39
【Python基础学习6】列表与元组

第6课:列表与元组

课程概述

本节课将学习Python中的两种重要数据结构:列表(list)和元组(tuple)。

欢迎大家关注此公众号,后台留言"python书籍"可免费获取【Python办公自动化高清PDF】电子书一本

此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅

列表(List)

列表是Python中最常用的数据结构,可以存储多个元素,且元素可以是不同类型。

创建列表

# 空列表
empty_list = []

# 包含元素的列表
numbers = [1, 2, 3, 4, 5]
fruits = ['apple', 'banana', 'orange']
mixed = [1, 'hello', 3.14, True]

# 使用list()函数
chars = list('Python')  # ['P', 'y', 't', 'h', 'o', 'n']

访问列表元素

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

# 索引访问(从0开始)
print(fruits[0])   # 'apple'
print(fruits[2])   # 'orange'

# 负索引(从-1开始,表示倒数第一个)
print(fruits[-1])  # 'grape'
print(fruits[-2])  # 'orange'

# 切片
print(fruits[1:3])   # ['banana', 'orange']
print(fruits[:2])    # ['apple', 'banana']
print(fruits[2:])    # ['orange', 'grape']
print(fruits[::2])   # ['apple', 'orange'](步长为2)

修改列表

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

# 修改单个元素
fruits[1] = 'pear'
print(fruits)  # ['apple', 'pear', 'orange']

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

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

列表方法

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

# 排序
numbers.sort()  # 原地排序
print(numbers)  # [1, 1, 2, 3, 4, 5, 6, 9]

sorted_numbers = sorted(numbers, reverse=True)  # 返回新列表

# 反转
numbers.reverse()

# 统计
print(numbers.count(1))  # 2(1出现的次数)
print(numbers.index(5))  # 查找5的索引

# 列表长度
print(len(numbers))

列表操作

# 列表拼接
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2  # [1, 2, 3, 4, 5, 6]

# 列表重复
repeated = [0] * 5# [0, 0, 0, 0, 0]

# 列表复制
original = [1, 2, 3]
copy1 = original.copy()
copy2 = original[:]

列表推导式

# 创建平方数列表
squares = [x**2for x inrange(1, 6)]  # [1, 4, 9, 16, 25]

# 过滤偶数
numbers = [1, 2, 3, 4, 5, 6]
evens = [x for x in numbers if x % 2 == 0]  # [2, 4, 6]

# 嵌套列表推导式
matrix = [[i*j for j inrange(1, 4)] for i inrange(1, 4)]

元组(Tuple)

元组与列表类似,但元组是不可变的(创建后不能修改)。

创建元组

# 空元组
empty_tuple = ()

# 包含元素的元组
coordinates = (3, 4)
person = ('张三', 25, '北京')

# 单元素元组(注意逗号)
single = (1,)

# 不使用括号
point = 1, 2, 3

访问元组

person = ('张三', 25, '北京')

# 索引访问
print(person[0])  # '张三'
print(person[-1])  # '北京'

# 切片
print(person[1:])  # (25, '北京')

# 元组解包
name, age, city = person
print(name)  # '张三'

元组方法

numbers = (1, 2, 3, 2, 4, 2)

# 计数
print(numbers.count(2))  # 3

# 查找索引
print(numbers.index(3))  # 2

# 长度
print(len(numbers))  # 6

元组的优势

# 1. 作为字典的键(列表不可以)
locations = {
    (0, 0): '原点',
    (1, 0): '东',
    (0, 1): '北'
}

# 2. 函数返回多个值
defget_user_info():
return'张三', 25, '北京'

name, age, city = get_user_info()

# 3. 保护数据不被修改
config = ('localhost', 8080, 'admin')

列表与元组的比较

# 列表:可变,使用方括号
my_list = [1, 2, 3]
my_list[0] = 10# 可以修改

# 元组:不可变,使用圆括号
my_tuple = (1, 2, 3)
# my_tuple[0] = 10  # 错误!不能修改

# 性能:元组比列表稍快
# 用途:列表用于同类数据集合,元组用于异构数据记录

实用示例

示例1:学生成绩管理

students = [
    ('张三', 85),
    ('李四', 92),
    ('王五', 78)
]

# 按成绩排序
students.sort(key=lambda x: x[1], reverse=True)

# 打印排名
for i, (name, score) inenumerate(students, 1):
print(f"第{i}名:{name},成绩:{score}")

示例2:购物车

cart = []

# 添加商品
cart.append(('苹果', 5.0, 3))
cart.append(('香蕉', 3.0, 5))
cart.append(('橙子', 4.0, 2))

# 计算总价
total = sum(price * quantity for name, price, quantity in cart)
print(f"总价:{total}元")

# 显示购物车
for name, price, quantity in cart:
print(f"{name}:单价{price}元,数量{quantity},小计{price*quantity}元")

示例3:数据统计

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

# 统计信息
print(f"最高分:{max(scores)}")
print(f"最低分:{min(scores)}")
print(f"平均分:{sum(scores) / len(scores):.2f}")
print(f"及格人数:{len([s for s in scores if s >= 60])}")

课后练习

  1. 1. 创建一个列表存储5个学生的成绩,计算平均分
  2. 2. 编写程序删除列表中的重复元素
  3. 3. 使用列表推导式生成1到100之间所有能被3整除的数
  4. 4. 编写程序将两个列表合并并排序
  5. 5. 使用元组存储坐标点,计算两点之间的距离

小结

本节课我们学习了列表和元组这两种重要的数据结构。列表是可变的,适合存储同类数据;元组是不可变的,适合存储异构数据记录。

下一课,我们将学习字典和集合。

最新文章

随机文章