上一篇
Python创建列表的7种方法 - 完整指南与代码示例 | Python列表教程
- Python
- 2025-07-26
- 1898
Python创建列表的完整指南
7种创建列表的方法及最佳实践
为什么列表在Python中如此重要?
列表是Python中最基本且强大的数据结构之一。它们允许你存储有序的元素集合,支持混合数据类型,并且提供了丰富的内置方法来操作数据。掌握列表的创建方法是每个Python开发者的必备技能。
列表的核心特点:
- 有序集合 - 元素保持插入顺序
- 可变 - 创建后可以修改内容
- 支持多种数据类型 - 可以混合存储数字、字符串、对象等
- 高效访问 - 通过索引快速访问元素
- 内置丰富方法 - append(), sort(), reverse()等
创建列表的7种方法
1. 使用方括号 [] 创建列表
最基础的创建方式,直接定义列表元素:
# 创建空列表
empty_list = []
# 创建整数列表
numbers = [1, 2, 3, 4, 5]
# 创建字符串列表
fruits = ["苹果", "香蕉", "橙子"]
# 创建混合类型列表
mixed = [10, "Python", 3.14, True]
print(fruits) # 输出: ['苹果', '香蕉', '橙子']
2. 使用 list() 构造函数
将其他可迭代对象(字符串、元组、字典等)转换为列表:
# 从字符串创建
word = "Python"
char_list = list(word) # ['P', 'y', 't', 'h', 'o', 'n']
# 从元组创建
tuple_data = (1, 2, 3)
list_from_tuple = list(tuple_data) # [1, 2, 3]
# 从字典创建(获取键)
person = {"name": "Alice", "age": 30, "city": "北京"}
keys_list = list(person) # ['name', 'age', 'city']
# 创建空列表
empty_list = list()
3. 列表推导式
简洁高效地基于现有列表创建新列表:
# 创建平方数列表
squares = [x**2 for x in range(1, 6)] # [1, 4, 9, 16, 25]
# 过滤偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers = [x for x in numbers if x % 2 == 0] # [2, 4, 6, 8]
# 转换元素类型
prices = ["100", "200", "300"]
int_prices = [int(price) for price in prices] # [100, 200, 300]
# 带条件的复杂推导
results = [x*2 if x % 2 == 0 else x*3 for x in range(1, 6)]
# [3, 4, 9, 8, 15]
4. 使用 * 运算符重复元素
快速创建包含重复元素的列表:
# 创建包含5个0的列表
zeros = [0] * 5 # [0, 0, 0, 0, 0]
# 创建重复字符串的列表
words = ["hello"] * 3 # ['hello', 'hello', 'hello']
# 创建嵌套列表(注意陷阱)
matrix = [[0] * 3] * 3 # [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
# 但小心引用问题
matrix[0][0] = 1
print(matrix) # [[1, 0, 0], [1, 0, 0], [1, 0, 0]]
5. 使用 range() 函数
创建数值序列列表:
# 创建0-9的列表
numbers = list(range(10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 创建1-10的列表
one_to_ten = list(range(1, 11)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 创建偶数列表
even_numbers = list(range(0, 20, 2)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 创建递减列表
countdown = list(range(10, 0, -1)) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
6. 使用 split() 方法
从字符串创建列表:
# 分割字符串
sentence = "Python 是一种强大的编程语言"
words = sentence.split() # ['Python', '是一种强大的编程语言']
# 按特定分隔符分割
csv_data = "苹果,香蕉,橙子,西瓜"
fruits = csv_data.split(",") # ['苹果', '香蕉', '橙子', '西瓜']
# 限制分割次数
data = "2023-10-15-18-30"
parts = data.split("-", 2) # ['2023', '10', '15-18-30']
7. 使用循环创建列表
通过循环动态构建列表:
# 创建斐波那契数列
fibonacci = [0, 1]
for i in range(2, 10):
next_num = fibonacci[i-1] + fibonacci[i-2]
fibonacci.append(next_num)
# [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
# 从用户输入创建列表
numbers = []
for i in range(5):
num = int(input(f"输入第 {i+1} 个数字: "))
numbers.append(num)
# 处理文件数据
lines = []
with open("data.txt", "r", encoding="utf-8") as file:
for line in file:
lines.append(line.strip())
列表创建最佳实践
性能考虑
- 列表推导式比for循环更快
- 避免在循环中使用append()创建大型列表
- 预分配空间:
my_list = [None] * size
可读性技巧
- 复杂逻辑避免使用嵌套推导式
- 命名变量要有意义
- 拆分过长的推导式为多行
常见错误
- 嵌套列表的引用问题
- 误用浅拷贝/深拷贝
- 修改正在迭代的列表
选择正确的创建方法
场景 | 推荐方法 |
---|---|
创建简单列表 | 方括号 [] |
转换其他数据结构 | list() 构造函数 |
基于现有列表创建新列表 | 列表推导式 |
创建重复元素的列表 | * 运算符 |
创建数值序列 | range() 函数 |
需要复杂逻辑的动态创建 | 循环 + append() |
掌握Python列表,提升编程效率
列表是Python编程的核心数据结构之一,灵活运用各种创建方法可以大大提高代码效率和可读性。从简单的方括号到强大的列表推导式,每种方法都有其适用场景。
立即开始实践这些技巧,提升你的Python编程技能!
本文由DongfangHuan于2025-07-26发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20256546.html
发表评论