Python 列表(list)

列表是 Python 中最常用的数据类型之一,用于存储一组有序的元素。列表支持多种操作,具有灵活性可变性,可以轻松完成增、删、改、查操作。


1. 什么是列表?

列表是一个有序集合,可以存储任意类型的元素
在 Python 中,列表用方括号 [] 表示,元素之间用逗号 , 分隔。

示例:定义列表

# 空列表
empty_list = []

# 包含多个元素的列表
fruits = ["苹果", "香蕉", "橙子"]

# 包含不同类型的元素
mixed_list = [1, "Python", True, [1, 2, 3]]

2. 列表的常见操作

1) 访问元素

列表中的元素是有序的,可以通过索引访问。索引从 0 开始。

fruits = ["苹果", "香蕉", "橙子"]
print(fruits[0])  # 输出:苹果
print(fruits[-1]) # 输出:橙子,负索引表示从右往左

2) 修改元素

通过索引直接修改某个位置的值。

fruits = ["苹果", "香蕉", "橙子"]
fruits[1] = "草莓"  # 将香蕉替换为草莓
print(fruits)      # 输出:['苹果', '草莓', '橙子']

3) 添加元素

  • 使用 append:在列表末尾追加一个元素。
  • 使用 insert:在指定位置插入元素。
# append
fruits = ["苹果", "香蕉"]
fruits.append("橙子")
print(fruits)  # 输出:['苹果', '香蕉', '橙子']

# insert
fruits.insert(1, "草莓")  
print(fruits)  # 输出:['苹果', '草莓', '香蕉', '橙子']

4) 删除元素

  • 使用 del:根据索引删除。
  • 使用 remove:根据值删除(如果值重复,仅删除第一个匹配项)。
  • 使用 pop:弹出指定索引的元素,默认弹出最后一个。
# del
fruits = ["苹果", "香蕉", "橙子"]
del fruits[1]  
print(fruits)  # 输出:['苹果', '橙子']

# remove
fruits = ["苹果", "香蕉", "香蕉"]
fruits.remove("香蕉")  
print(fruits)  # 输出:['苹果', '香蕉']

# pop
fruits = ["苹果", "香蕉", "橙子"]
last = fruits.pop()  
print(fruits)  # 输出:['苹果', '香蕉']
print(last)    # 输出:橙子

5) 切片操作

切片操作可以提取列表中的一部分元素。

numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4])  # 输出:[1, 2, 3]
print(numbers[:3])   # 输出:[0, 1, 2],从开头到索引2
print(numbers[3:])   # 输出:[3, 4, 5],从索引3到结尾
print(numbers[::2])  # 输出:[0, 2, 4],步长为2

6) 列表长度

使用 len 获取列表的长度(元素个数)。

numbers = [1, 2, 3, 4]
print(len(numbers))  # 输出:4

3. 列表的常用方法

方法 作用 示例
append(item) 在末尾追加元素 fruits.append("西瓜")
insert(index, item) 在指定位置插入元素 fruits.insert(1, "草莓")
remove(item) 删除指定值的第一个匹配项 fruits.remove("香蕉")
pop(index) 弹出指定索引的元素,默认为最后一个 fruits.pop()
index(item) 返回指定值的第一个索引 fruits.index("苹果")
count(item) 统计某个值在列表中的个数 fruits.count("苹果")
sort() 原地排序(默认升序) numbers.sort()
reverse() 反转列表 numbers.reverse()
clear() 清空列表 fruits.clear()

示例:排序和统计

numbers = [5, 3, 8, 2, 5]
numbers.sort()  # 排序
print(numbers)  # 输出:[2, 3, 5, 5, 8]

print(numbers.count(5))  # 输出:2,统计 5 的个数

4. 嵌套列表

列表可以包含其他列表,形成多维列表。

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 访问第二行第三列
print(matrix[1][2])  # 输出:6

5. 列表推导式

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

生成新列表

# 生成一个包含 1 到 5 的平方的列表
squares = [x ** 2 for x in range(1, 6)]
print(squares)  # 输出:[1, 4, 9, 16, 25]

条件筛选

# 筛选出偶数的平方
even_squares = [x ** 2 for x in range(1, 6) if x % 2 == 0]
print(even_squares)  # 输出:[4, 16]

6. 列表与其他类型的转换

字符串转换为列表

text = "hello"
char_list = list(text)  # 将字符串分解为字符列表
print(char_list)  # 输出:['h', 'e', 'l', 'l', 'o']

列表转换为字符串

words = ["Python", "is", "fun"]
sentence = " ".join(words)  # 用空格连接
print(sentence)  # 输出:Python is fun

7. 注意事项

  1. 索引越界:访问不存在的索引会报错。

    fruits = ["苹果"]
    print(fruits[1])  # IndexError
    
  2. 列表是可变的:列表内容可以直接修改,会影响到引用它的变量。

  3. 性能注意:列表操作的效率会随着列表长度增加而降低,特别是插入和删除操作。


8. 总结

  • 列表是一个功能强大的数据结构,支持存储任意类型的元素。
  • 它提供了丰富的方法,能够高效处理多种数据操作。
  • 学会列表,能让你的 Python 编程更加灵活、高效!