目录
6. 字典推导式(Dictionary Comprehension)
列表相关知识点
在 Python 中,列表(List)是一种非常灵活且常用的数据结构,用于存储多个元素。以下是关于列表的核心知识点:
1. 基本定义与特性
列表是有序、可变、可重复的元素集合,用方括号 []
表示。
python
# 创建列表
empty_list = [] # 空列表
mixed_list = [1, "apple", True, [3.14, 2.71]] # 支持不同数据类型
nested_list = [[1, 2], [3, 4]] # 嵌套列表
2. 访问元素
通过索引(从 0 开始)或切片访问列表元素。
python
fruits = ["apple", "banana", "cherry", "date"]
# 索引访问
print(fruits[0]) # 输出: apple
print(fruits[-1]) # 输出: date(负数索引表示从后往前)
# 切片操作 [start:stop:step]
print(fruits[1:3]) # 输出: ['banana', 'cherry']
print(fruits[::2]) # 输出: ['apple', 'cherry'](步长为 2)
3. 修改列表
列表是可变的,支持添加、删除、替换元素。
python
# 添加元素
fruits.append("elderberry") # 在末尾添加
fruits.insert(1, "blueberry") # 在指定位置插入
# 删除元素
fruits.remove("cherry") # 按值删除
popped = fruits.pop(2) # 按索引删除并返回值
del fruits[0] # 直接删除指定索引元素
# 替换元素
fruits[1] = "grape" # 修改指定位置的值
# 合并列表
fruits.extend(["kiwi", "lemon"]) # 扩展列表
new_fruits = fruits + ["mango"] # 拼接生成新列表
4. 常用操作与方法
方法 | 描述 |
---|---|
len(list) |
返回列表长度 |
list.count(x) |
统计元素 x 出现的次数 |
list.index(x) |
返回元素 x 第一次出现的索引 |
list.sort() |
原地排序(升序) |
sorted(list) |
返回排序后的新列表 |
list.reverse() |
原地反转列表 |
list.copy() |
返回列表的浅拷贝 |
5. 列表推导式(List Comprehension)
简洁创建列表的语法,替代传统循环
python
# 生成 0~9 的平方列表
squares = [x**2 for x in range(10)] # 输出: [0, 1, 4, 9, ..., 81]
# 带条件的列表推导式
evens = [x for x in range(10) if x % 2 == 0] # 输出: [0, 2, 4, 6, 8]
# 嵌套列表展开
matrix = [[1, 2], [3, 4]]
flattened = [num for row in matrix for num in row] # 输出: [1, 2, 3, 4]
6. 遍历列表
常用 for
循环或 while
循环遍历。
python
# for 循环
for fruit in fruits:
print(fruit)
# while 循环
i = 0
while i < len(fruits):
print(fruits[i])
i += 1
# 同时获取索引和值
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
7. 注意事项
- 浅拷贝与深拷贝:
python
original = [1, [2, 3]] shallow_copy = original.copy() # 浅拷贝:仅复制外层,嵌套列表仍共享引用
- 列表作为参数传递:函数内修改列表会影响原始列表。
8. 常见应用场景
- 存储数据集合(如用户列表、日志记录)。
- 实现栈(Stack)或队列(Queue)。
- 数据处理与转换(结合列表推导式)。
示例代码
以下是一个综合示例,展示列表的常用操作:
python
# 创建一个包含数字 1~5 的列表
numbers = list(range(1, 6))
# 添加元素
numbers.append(6)
numbers.insert(0, 0)
# 删除元素
numbers.remove(3) # 删除值为 3 的元素
# 计算总和与平均值
total = sum(numbers)
average = total / len(numbers)
# 使用列表推导式生成偶数子列表
evens = [x for x in numbers if x % 2 == 0]
print(f"列表: {numbers}")
print(f"总和: {total}, 平均值: {average}")
print(f"偶数子列表: {evens}")
字典相关知识点
在 Python 中,字典(Dictionary)是一种无序、可变且灵活的数据结构,用于存储键值对(Key-Value Pairs)。以下是关于字典的核心知识点:
1. 基本定义与特性
字典用花括号 {}
表示,每个键值对用冒号 :
分隔,键必须是不可变类型(如字符串、数字、元组),值可以是任意类型。
python
运行
# 创建字典
empty_dict = {} # 空字典
person = {
"name": "Alice",
"age": 30,
"hobbies": ["reading", "swimming"],
1: "one", # 键可以是数字
("city",): "New York" # 键可以是元组
}
2. 访问值
通过键访问对应的值,若键不存在会报错。可用 get()
方法安全获取值(键不存在时返回默认值)。
python
运行
# 直接访问
print(person["name"]) # 输出: Alice
# 使用 get() 方法
print(person.get("age")) # 输出: 30
print(person.get("salary", 0)) # 输出: 0(默认值)
3. 修改与添加键值对
字典是可变的,支持添加、修改或删除键值对。
python
运行
# 修改值
person["age"] = 31 # 更新年龄
# 添加新键值对
person["job"] = "Engineer"
# 删除键值对
del person[1] # 删除键为 1 的项
person.pop("hobbies") # 删除并返回指定键的值
4. 常用操作与方法
方法 | 描述 |
---|---|
len(dict) |
返回字典的键值对数量 |
dict.keys() |
返回所有键的视图 |
dict.values() |
返回所有值的视图 |
dict.items() |
返回所有键值对的视图(元组形式) |
dict.update(other) |
用另一个字典更新当前字典 |
dict.clear() |
清空字典 |
key in dict |
检查键是否存在(返回布尔值) |
5. 遍历字典
可遍历键、值或键值对。
python
运行
# 遍历键
for key in person:
print(key)
# 等价于
for key in person.keys():
print(key)
# 遍历值
for value in person.values():
print(value)
# 遍历键值对
for key, value in person.items():
print(f"{key}: {value}")
6. 字典推导式(Dictionary Comprehension)
类似列表推导式,用于快速创建字典。
python
运行
# 生成数字与其平方的映射
squares = {x: x**2 for x i