title: 迭代 description:Python 迭代(Iteration)教程

迭代

Python 迭代(Iteration)教程

什么是迭代?

迭代是指通过循环遍历一个可迭代对象中的元素的过程。在Python中,迭代通常使用for...in语句实现。

基本迭代示例

迭代列表(List)

fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
    print(fruit)

迭代元组(Tuple)

colors = ('red', 'green', 'blue')
for color in colors:
    print(color)

字典(Dict)的迭代

字典是可迭代对象,但默认情况下迭代的是键(key):

person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
for key in person:
    print(key)

迭代字典的值(values)

for value in person.values():
    print(value)

同时迭代键和值(items)

for key, value in person.items():
    print(f"{key}: {value}")

字符串的迭代

字符串也是可迭代对象:

text = "Python"
for char in text:
    print(char)

判断可迭代对象

要检查一个对象是否可迭代,可以使用collections.abc模块中的Iterable类:

from collections.abc import Iterable

print(isinstance('abc', Iterable))  # True
print(isinstance([1, 2, 3], Iterable))  # True
print(isinstance(123, Iterable))  # False

带索引的迭代

如果需要同时获取索引和元素,可以使用enumerate()函数:

fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

同时迭代多个变量

Python可以同时迭代多个变量:

coordinates = [(1, 2), (3, 4), (5, 6)]
for x, y in coordinates:
    print(f"x: {x}, y: {y}")

实践练习:查找列表的最小和最大值

def findMinAndMax(L):
    if not L:  # 空列表情况
        return (None, None)
    
    min_val = max_val = L[0]
    for num in L:
        if num < min_val:
            min_val = num
        if num > max_val:
            max_val = num
    return (min_val, max_val)

# 测试
if findMinAndMax([]) != (None, None):
    print('测试失败!')
elif findMinAndMax([7]) != (7, 7):
    print('测试失败!')
elif findMinAndMax([7, 1]) != (1, 7):
    print('测试失败!')
elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9):
    print('测试失败!')
else:
    print('测试成功!')

高级迭代技巧

使用zip()同时迭代多个序列

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old")

反向迭代

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

排序后迭代

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

总结

  1. Python中的迭代是通过for...in语句实现的
  2. 任何可迭代对象都可以用于for循环,包括list、tuple、dict、str等
  3. 字典默认迭代键,但可以使用.values().items()方法迭代值和键值对
  4. 使用enumerate()可以同时获取索引和元素
  5. Python支持同时迭代多个变量
  6. 可以通过collections.abc.Iterable检查对象是否可迭代

迭代是Python编程中的基础概念,掌握好迭代技巧可以编写出更简洁、高效的代码。