侧边栏壁纸
博主头像
phphi

phphi's blog

  • 累计撰写 51 篇文章
  • 累计收到 0 条评论

Day09 - 常用数据结构之列表-2

2026-4-24 / 0 评论 / 1 阅读

常用数据结构之列表(二)

列表的方法

添加和删除元素

languages = ['Python', 'Java', 'C++']

# 添加
languages.append('JavaScript')   # 追加到末尾
languages.insert(1, 'SQL')        # 插入到指定位置

# 删除
languages.remove('Java')          # 移除第一个匹配项
languages.pop()                   # 弹出最后一个元素
languages.pop(0)                  # 弹出指定位置元素
languages.clear()                 # 清空列表
del languages[1]                 # del 关键字删除

注意remove() 找不到元素会引发 ValueError,建议先做成员判断。

查找元素

items = ['Python', 'Java', 'Java', 'C++', 'Python']

print(items.index('Python'))      # 0(第一个匹配的索引)
print(items.index('Python', 1))  # 4(从索引1开始查找)
print(items.count('Python'))     # 2(出现次数)

排序和反转

items = ['Python', 'Java', 'C++', 'Kotlin']
items.sort()                     # 升序排序
items.reverse()                  # 反转列表

列表生成式

列表生成式是 Python 的特色语法,用一行代码创建列表,性能优于 for 循环 + append

# 基础形式
[表达式 for 变量 in 可迭代对象]

# 示例:1-99中能被3或5整除的数
[i for i in range(1, 100) if i % 3 == 0 or i % 5 == 0]

# 平方列表
nums = [35, 12, 97, 64, 55]
squares = [num ** 2 for num in nums]

# 筛选大于50的元素
big_nums = [num for num in nums if num > 50]

建议:创建列表优先使用生成式语法,代码简洁且效率更高。

嵌套列表

列表元素也可以是列表,用于表示矩阵或表格:

scores = [[95, 83, 92], [80, 75, 82], [92, 97, 90]]

print(scores[0])         # [95, 83, 92]
print(scores[0][1])      # 83(第一个学生的第二门成绩)

生成嵌套列表:

import random
scores = [[random.randrange(60, 101) for _ in range(3)] for _ in range(5)]

应用:双色球随机选号

import random

red_balls = list(range(1, 34))   # 1-33红色球
blue_balls = list(range(1, 17))  # 1-16蓝色球

# 无放回随机抽样6个红球
selected_balls = random.sample(red_balls, 6)
selected_balls.sort()

for ball in selected_balls:
    print(f'\033[031m{ball:02d}\033[0m', end=' ')
blue = random.choice(blue_balls)
print(f'\033[034m{blue:02d}\033[0m')

说明random.sample(seq, n) — 无放回抽取 n 个不重复元素
random.choice(seq) — 随机抽取 1 个元素

总结

  • 列表是可变容器,支持增删改查操作
  • append() 追加、insert() 插入、remove() 删除、pop() 弹出
  • 优先使用列表生成式创建列表,性能更好
  • 嵌套列表用于表示二维结构(矩阵、表格等)