当前位置:首页 > Python > 正文

Python创建列表的7种方法 - 完整指南与代码示例 | Python列表教程

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编程技能!

发表评论