Python入门05:搞定列表(List),玩转核心数据结构!
在上一节课中,我们学习了如何通过运算符来处理和计算数据。但程序的核心不仅仅是计算,更重要的是如何高效地组织和管理数据。这节课,我们将深入Python的灵魂——核心数据结构,并首先聚焦于其中最强大、最灵活的成员:列表(List)。
在许多编程语言(如C++、Java)中,数组(Array)是存储数据集合的基础工具,但它有一个显著的限制:长度固定。一旦声明了数组的大小,就无法再改变。
Python的列表则完全不同,你可以把它理解为一个**“动态数组”。它使用方括号[]定义,最大的优势在于长度可变**,你可以根据需要随时添加或删除元素,无需在创建时就确定其大小。
# 创建一个空列表my_list = []# 创建一个包含元素的列表fruits = [”apple”, ”banana”, ”cherry”]
2.1 打印与遍历打印一个列表会直接显示其所有元素。要逐个访问元素,最常用的方法是使用 for 循环。
fruits = [”apple”, ”banana”, ”cherry”]# 直接打印整个列表print(fruits)# 输出: ['apple', 'banana', 'cherry']# 使用for循环遍历并打印每个元素for fruit in fruits: print(fruit)# 输出:# apple# banana# cherry
2.2 索引 (Indexing):精准定位列表是有序的,每个元素都有一个位置编号,称为索引。在Python中,索引从0开始。
fruits[0]fruits[1]fruits[2]
你也可以结合 len() 函数(获取列表长度)和 range() 函数,通过索引来遍历列表,这在某些场景下非常有用。
fruits = [”apple”, ”banana”, ”cherry”]# 获取列表长度print(len(fruits))# 输出: 3# 通过索引遍历列表for i in range(len(fruits)): print(f”索引 {i} 的元素是: {fruits[i]}”)
列表的“可变性”体现在一系列强大的增删改操作上。
append(element)insert(index, element): 在指定索引位置插入一个元素,后续元素会自动后移。
remove(element)pop(): 移除并返回列表的最后一个元素(像一个弹出操作)。
- 直接通过索引赋值即可修改指定位置的元素,例如
fruits[0] = "pear"。
fruits = [”apple”, ”banana”, ”cherry”]# --- 增 ---fruits.append(”orange”)# 末尾添加print(fruits)# ['apple', 'banana', 'cherry', 'orange']fruits.insert(1, ”mango”)# 在索引1处插入print(fruits)# ['apple', 'mango', 'banana', 'cherry', 'orange']# --- 删 ---fruits.remove(”banana”)# 删除第一个”banana”print(fruits)# ['apple', 'mango', 'cherry', 'orange']last_fruit = fruits.pop()# 弹出最后一个元素print(last_fruit)# orangeprint(fruits)# ['apple', 'mango', 'cherry']# --- 改 ---fruits[0] = ”pear”# 修改索引0的元素print(fruits)# ['pear', 'mango', 'cherry']
如果说索引是“单点攻击”,那么切片就是“范围攻击”。它允许你从一个列表中提取出一个子列表。语法是 list[start:end],它会提取从 start 索引开始到 end 索引之前的所有元素(包含start,不包含end)。
numbers[1:4]numbers[::-1]: 一个非常酷的技巧!步长为-1,表示反向提取,可以轻松实现列表反转。
numbers = [0, 1, 2, 3, 4, 5]# 提取索引1到3的元素 (不包含索引4)sub_list = numbers[1:4]print(sub_list)# 输出: [1, 2, 3]# 反转列表reversed_list = numbers[::-1]print(reversed_list)# 输出: [5, 4, 3, 2, 1, 0]
Python为列表提供了许多便捷的内置方法,在数据处理和算法中非常常见。
count(value)index(value)sort()sorted(list)
nums = [3, 1, 4, 1, 5, 9, 2]# 统计print(nums.count(1))# 输出: 2 (数字1出现了两次)# 查找索引print(nums.index(4))# 输出: 2 (数字4第一次出现在索引2)# 排序 (原地排序)nums.sort()print(nums)# 输出: [1, 1, 2, 3, 4, 5, 9]# 降序排序nums.sort(reverse=True)print(nums)# 输出: [9, 5, 4, 3, 2, 1, 1]
列表是Python编程的基石,熟练掌握它的各种操作,是你迈向Python高手的第一步。课后不妨自己动手创建一个列表,尝试今天学到的所有方法,加深理解!