系统地总结一下Python中关于“遍历”的知识点

发布于:2025-09-13 ⋅ 阅读:(18) ⋅ 点赞:(0)

来系统地总结一下Python中关于“遍历”(也叫“迭代”)的核心知识点。

一、 核心概念:迭代 (Iteration)

迭代是编程中最基本的操作之一,指的是重复地对一个数据集合中的每一个元素执行相同的操作。在Python中,能被 for 循环遍历的对象都称为可迭代对象 (Iterable),例如列表、字符串、字典、元组等。


二、 最基础的遍历工具:for 循环

这是Python中最常用、最强大的遍历语法。

基本结构:

for 变量 in 可迭代对象:
    # 对每个变量执行的代码块

示例:

numbers = [1, 2, 3, 4]
for num in numbers:
    print(num * 2)

三、 遍历不同数据结构的技巧

不同的数据结构有不同的遍历方式和特点。

1. 序列类型 (List, Tuple, String)

它们的遍历方式最直接,都是按顺序逐个访问元素。

  • 列表 (List) / 元组 (Tuple):
    fruits = ['apple', 'banana', 'cherry']
    for fruit in fruits:
        print(fruit)
    
  • 字符串 (String):
    message = "Hello"
    for char in message:
        print(char)
    
2. 映射类型 (Dictionary)

字典的遍历非常灵活,可以分别针对键、值或键值对进行。

  • 遍历键 (Keys) - 默认方式
    grades = {'数学': 95, '语文': 89}
    for subject in grades:  # 等同于 for subject in grades.keys():
        print(f"科目: {subject}, 分数: {grades[subject]}")
    
  • 只遍历值 (Values)
    for score in grades.values():
        print(f"分数: {score}")
    
  • 同时遍历键和值 (Key-Value Pairs) - 推荐方式
    这是最高效、最直观的方式。
    for subject, score in grades.items():
        print(f"科目: {subject}, 分数: {score}")
    
3. 集合类型 (Set)

集合用于存储不重复的元素,遍历时会访问其中的每一个元素,但不保证顺序(在较新的Python版本中通常是插入顺序,但不应依赖此特性)。

unique_numbers = {1, 3, 2, 3, 1}
for num in unique_numbers:
    print(num)  # 会输出 1, 2, 3 (顺序不定)

四、 增强遍历的“神器”:内置函数

Python提供了几个非常有用的内置函数,让遍历变得更加强大。

1. enumerate() - 同时获取索引和值

当你需要一边遍历元素,一边知道当前元素是第几个时,用 enumerate()

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits, start=1): # start=1 让索引从1开始
    print(f"第{index}个水果是: {fruit}")
2. zip() - 并行遍历多个序列

当你有多个列表,想把它们对应位置的元素配对在一起遍历时,用 zip()。循环次数由最短的那个序列决定。

names = ['张三', '李四', '王五']
scores = [95, 89, 92]
for name, score in zip(names, scores):
    print(f"{name}的成绩是: {score}")
3. range() - 遍历数字序列

当你需要循环固定的次数,或者需要按索引遍历时,range() 是最佳选择。

# 循环5次 (从0到4)
for i in range(5):
    print(i)

# 按索引遍历列表 (不推荐,enumerate更好)
items = [10, 20, 30]
for i in range(len(items)):
    print(f"索引{i}的值是{items[i]}")

五、 控制循环流程

在循环内部,有时需要提前退出或跳过某些元素。

  • break:完全终止并跳出整个循环
    for num in [1, 2, 3, 4, 5]:
        if num == 4:
            break  # 当num等于4时,循环立即停止
        print(num) # 输出 1, 2, 3
    
  • continue:跳过本次循环的剩余代码,直接进入下一次循环。
    for num in [1, 2, 3, 4, 5]:
        if num == 3:
            continue # 当num等于3时,跳过本次print,继续下一次循环
        print(num) # 输出 1, 2, 4, 5
    

六、 更 Pythonic 的遍历方式:推导式 (Comprehensions)

推导式是一种非常强大和简洁的语法,可以在遍历一个序列的同时,生成一个新的序列。

  • 列表推导式 (List Comprehension):

    # 从一个列表中,创建一个只包含偶数并平方的新列表
    numbers = [1, 2, 3, 4, 5]
    squared_evens = [n**2 for n in numbers if n % 2 == 0]
    # 结果: [4, 16]
    
  • 字典推导式 (Dictionary Comprehension):

    # 快速创建一个键是数字,值是其平方的字典
    square_dict = {x: x*x for x in range(5)}
    # 结果: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
    

总结表格

遍历需求 推荐方法 语法示例
遍历列表/元组/字符串 直接 for 循环 for element in my_list:
遍历字典的键和值 .items() for key, value in my_dict.items():
遍历时需要索引 enumerate() for index, value in enumerate(my_list):
并行遍历多个列表 zip() for item1, item2 in zip(list1, list2):
循环固定次数 range() for i in range(10):
边遍历边创建新列表 列表推导式 [x*2 for x in old_list]

掌握了以上这些知识点,就能够应对Python中绝大部分的遍历场景了。