简介
Python 列表是一种通用的数据结构,它使开发者能够高效地存储和管理元素集合。本教程将探讨多种用值填充列表的技术,为程序员提供在 Python 编程中创建、填充和操作列表的基本技能。
Python 列表是一种通用的数据结构,它使开发者能够高效地存储和管理元素集合。本教程将探讨多种用值填充列表的技术,为程序员提供在 Python 编程中创建、填充和操作列表的基本技能。
Python列表是一种通用的、有序的项目集合,可以存储多种不同类型的元素。列表是可变的,这意味着你可以在创建后修改、添加或删除元素。
列表使用方括号 [] 或 list() 构造函数创建:
## 创建列表
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, 'hello', True, 3.14]
empty_list = []
| 特性 | 描述 |
|---|---|
| 有序 | 元素保持其插入顺序 |
| 可变 | 创建后可以修改 |
| 可索引 | 可以通过索引访问元素 |
| 异构 | 可以包含不同的数据类型 |
## 访问元素
fruits = ['apple', 'banana', 'cherry']
print(fruits[0]) ## 第一个元素
print(fruits[-1]) ## 最后一个元素
## 修改元素
fruits[1] = 'grape'
## 添加元素
fruits.append('orange')
fruits.insert(1,'mango')
## 删除元素
fruits.remove('apple')
del fruits[1]
fruits = ['apple', 'banana', 'cherry']
## 获取列表长度
print(len(fruits)) ## 3
## 检查成员资格
print('banana' in fruits) ## True
print('grape' not in fruits) ## True
numbers = [0, 1, 2, 3, 4, 5]
## 切片
print(numbers[1:4]) ## [1, 2, 3]
print(numbers[:3]) ## [0, 1, 2]
print(numbers[3:]) ## [3, 4, 5]
LabEx建议通过练习这些概念来打好Python列表操作的坚实基础。
## 直接初始化
fruits = ['apple', 'banana', 'cherry']
numbers = [0, 1, 2, 3, 4]
## 重复元素
zeros = [0] * 5 ## [0, 0, 0, 0, 0]
repeated_list = ['x'] * 3 ## ['x', 'x', 'x']
## 添加单个元素
fruits = []
fruits.append('apple')
fruits.append('banana')
## 结果: ['apple', 'banana']
## 添加多个元素
numbers = [1, 2, 3]
numbers.extend([4, 5, 6])
## 结果: [1, 2, 3, 4, 5, 6]
## 在特定索引处插入
colors = ['red', 'blue']
colors.insert(1, 'green')
## 结果: ['red', 'green', 'blue']
## 使用range创建列表
numbers = list(range(5)) ## [0, 1, 2, 3, 4]
even_numbers = list(range(0, 10, 2)) ## [0, 2, 4, 6, 8]
## 创建具有默认值的列表
size = 5
default_list = [None] * size
matrix = [[0 for _ in range(3)] for _ in range(3)]
| 方法 | 用途 | 性能 | 灵活性 |
|---|---|---|---|
| 字面量 | 直接初始化 | 最快 | 低 |
| 乘法 | 重复元素 | 快 | 中等 |
| append() | 添加单个元素 | 中等 | 高 |
| extend() | 添加多个元素 | 良好 | 高 |
| 列表推导式 | 复杂生成 | 灵活 | 非常高 |
## 高效的列表填充
## 对于复杂场景,优先使用列表推导式
squares = [x**2 for x in range(10)]
## 避免重复的列表修改
## 改用extend或列表推导式
LabEx建议掌握这些方法以编写更高效的Python代码。
列表推导式是在Python中创建列表的一种简洁而强大的方式,它允许你在一行代码中生成、转换和过滤列表。
## 基本列表推导式结构
new_list = [expression for item in iterable]
## 示例:创建一个平方数列表
squares = [x**2 for x in range(10)]
## 结果: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
## 将字符串转换为大写
names = ['alice', 'bob', 'charlie']
uppercase_names = [name.upper() for name in names]
## 结果: ['ALICE', 'BOB', 'CHARLIE']
## 过滤偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
## 结果: [2, 4, 6, 8, 10]
## 嵌套条件
result = [x*y for x in range(3) for y in range(3) if x!= y]
## 等同于带有条件的嵌套循环
| 方法 | 可读性 | 性能 | 复杂度 |
|---|---|---|---|
| 列表推导式 | 高 | 快 | 简单 |
| 传统循环 | 中等 | 较慢 | 更冗长 |
| map() 函数 | 低 | 中等 | 复杂 |
## 创建一个3x3矩阵
matrix = [[i*j for j in range(3)] for i in range(3)]
## 结果: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]
## 推导式中的三元操作
numbers = [1, 2, 3, 4, 5]
classified = ['even' if num % 2 == 0 else 'odd' for num in numbers]
## 结果: ['odd', 'even', 'odd', 'even', 'odd']
## 基准测试:列表推导式与传统循环
import timeit
## 列表推导式
def comp_method():
return [x**2 for x in range(1000)]
## 传统循环
def loop_method():
result = []
for x in range(1000):
result.append(x**2)
return result
LabEx建议通过练习列表推导式来编写更符合Python风格的代码。
了解填充Python列表的不同方法对于有效的数据处理至关重要。通过掌握列表初始化技术、推导式以及各种填充策略,开发者在使用Python中的列表数据结构时能够编写更简洁、易读且高效的代码。