610's Algorithm Teaching

数据结构

列表(List)

列表是Python中最常用的数据结构,是有序可变的元素集合。

# 列表创建和初始化
numbers = [1, 2, 3, 4, 5]
fruits = ["苹果", "香蕉", "橙子"]
mixed = [1, "hello", 3.14, True]

# 访问列表元素
print(fruits[0]) # 输出:苹果
print(fruits[-1]) # 输出:橙子

# 列表切片
print(numbers[1:4]) # 输出:[2, 3, 4]
print(numbers[:3]) # 输出:[1, 2, 3]
print(numbers[2:]) # 输出:[3, 4, 5]

# 列表操作
fruits.append("葡萄") # 添加元素
fruits.insert(1, "草莓") # 插入元素
fruits.remove("香蕉") # 删除元素
popped = fruits.pop() # 弹出最后一个元素
fruits[0] = "桃子" # 修改元素

列表方法

  • append(x):在列表末尾添加元素
  • insert(i, x):在指定位置插入元素
  • remove(x):删除列表中第一个出现的x
  • pop([i]):删除并返回指定位置的元素
  • clear():清空列表
  • index(x):返回元素x的索引
  • count(x):返回元素x出现的次数
  • sort():对列表进行排序
  • reverse():反转列表

字典(Dictionary)

字典是键值对的无序集合,通过键来访问值。

# 字典创建和初始化
person = {"name": "张三", "age": 25, "city": "北京"}
empty_dict = {}

# 访问字典元素
print(person["name"]) # 输出:张三
print(person.get("age")) # 输出:25
print(person.get("height", 175)) # 输出:175(默认值)

# 字典操作
person["email"] = "zhangsan@example.com" # 添加键值对
person["age"] = 26 # 修改值
del person["city"] # 删除键值对
keys = person.keys() # 获取所有键
values = person.values() # 获取所有值
items = person.items() # 获取所有键值对

字典方法

  • keys():返回所有键
  • values():返回所有值
  • items():返回所有键值对
  • get(key, default):获取键对应的值,不存在则返回默认值
  • pop(key, default):删除并返回键对应的值
  • clear():清空字典
  • update(other):用另一个字典更新当前字典

集合(Set)

集合是无序不重复的元素集合,用于去重和集合运算。

# 集合创建和初始化
numbers = {1, 2, 3, 4, 5}
unique = set([1, 2, 2, 3, 3, 4]) # 自动去重
print(unique) # 输出:{1, 2, 3, 4}

# 集合操作
numbers.add(6) # 添加元素
numbers.remove(1) # 删除元素
numbers.discard(10) # 删除元素(不存在也不报错)

# 集合运算
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 & set2) # 交集:{3, 4}
print(set1 | set2) # 并集:{1, 2, 3, 4, 5, 6}
print(set1 - set2) # 差集:{1, 2}
print(set1 ^ set2) # 对称差集:{1, 2, 5, 6}

元组(Tuple)

元组是有序不可变的元素集合,一旦创建就不能修改。

# 元组创建和初始化
point = (10, 20)
colors = ("红", "绿", "蓝")
single = (42,) # 单元素元组需要逗号

# 访问元组元素
print(point[0]) # 输出:10
print(colors[-1]) # 输出:蓝

# 元组解包
x, y = point
print(f"x = {x}, y = {y}")

# 元组方法
print(len(point)) # 输出:2
print(point.index(10)) # 输出:0
print(colors.count("红")) # 输出:1

列表推导式

列表推导式是创建列表的简洁方式。

# 基本列表推导式
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 带条件的列表推导式
even_numbers = [x for x in range(1, 21) if x % 2 == 0]
print(even_numbers) # 输出:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

# 嵌套列表推导式
matrix = [[i*j for j in range(1, 4)] for i in range(1, 4)]
print(matrix) # 输出:[[1, 2, 3], [2, 4, 6], [3, 6, 9]]

字典推导式

字典推导式是创建字典的简洁方式。

# 基本字典推导式
squares = {x: x**2 for x in range(1, 6)}
print(squares) # 输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 带条件的字典推导式
even_squares = {x: x**2 for x in range(1, 11) if x % 2 == 0}
print(even_squares) # 输出:{2: 4, 4: 16, 6: 36, 8: 64, 10: 100}

学习建议

  • 理解不同数据结构的适用场景
  • 掌握列表、字典、集合、元组的常用方法
  • 注意列表和元组的区别(可变vs不可变)
  • 学会使用推导式简化代码
  • 理解字典的键必须是不可变类型
  • 合理使用集合进行去重和集合运算
返回Python教程