在 Python 中,for-in
语句是最常用的控制流语句之一,用于迭代序列(如列表、元组、字符串等)中的每个元素,并在每次迭代时执行特定的操作。for-in
语句通常用于遍历容器类型的数据结构,并对其每个元素进行处理。掌握 for-in
语句是 Python 编程的重要技能。
1. for-in
语句的基本语法
for-in
语句的基本语法结构如下:
for 变量 in 可迭代对象:
# 执行的操作
变量
:用于接收可迭代对象中每次迭代的元素。可迭代对象
:一个可以迭代的对象(如列表、元组、字符串、字典等)。执行的操作
:在每次迭代时要执行的代码。
示例:遍历列表中的元素
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
输出结果:
apple
banana
cherry
在这个示例中,for
语句遍历了 fruits
列表中的每一个元素,并逐个打印出来。
2. 遍历不同的可迭代对象
Python 的 for-in
语句可以用于遍历多种可迭代对象,包括列表、元组、字符串、字典等。
2.1 遍历列表
列表是最常见的可迭代对象,for-in
语句可以逐一访问列表中的每个元素。
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)
输出结果:
1
2
3
4
5
2.2 遍历元组
元组和列表类似,不同之处在于元组是不可变的。我们也可以用 for-in
语句遍历元组。
coordinates = (10, 20, 30)
for coordinate in coordinates:
print(coordinate)
输出结果:
10
20
30
2.3 遍历字符串
字符串是一个字符的序列,for-in
语句可以遍历字符串中的每个字符。
word = "hello"
for char in word:
print(char)
输出结果:
h
e
l
l
o
2.4 遍历字典
字典的遍历稍有不同,因为字典存储的是键值对。在 Python 中,可以遍历字典的键、值,或者同时遍历键和值。
遍历字典的键:
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
for key in person:
print(key)
输出结果:
name
age
city
遍历字典的值:
for value in person.values():
print(value)
输出结果:
Alice
25
New York
同时遍历字典的键和值:
for key, value in person.items():
print(f"{key}: {value}")
输出结果:
name: Alice
age: 25
city: New York
3. for-in
语句的应用场景
3.1 计算列表中的总和
假设你有一个整数列表,想要计算列表中所有元素的和,可以使用 for-in
语句:
numbers = [1, 2, 3, 4, 5]
total = 0
for num in numbers:
total += num
print("总和:", total)
输出结果:
总和: 15
在这个示例中,我们通过遍历列表中的每个元素,并将它们累加到 total
变量中,最终得到总和。
3.2 查找列表中的最大值
你可以通过 for-in
语句遍历列表,找到其中的最大值。
numbers = [10, 20, 50, 30, 40]
max_value = numbers[0]
for num in numbers:
if num > max_value:
max_value = num
print("最大值:", max_value)
输出结果:
最大值: 50
在该示例中,我们遍历了列表中的每个元素,并通过条件判断找到最大值。
3.3 字符串反转
使用 for-in
语句可以反转字符串中的字符顺序。
word = "hello"
reversed_word = ""
for char in word:
reversed_word = char + reversed_word
print("反转后的字符串:", reversed_word)
输出结果:
反转后的字符串: olleh
在这个例子中,我们逐个访问字符串中的字符,并将每个字符添加到新的字符串 reversed_word
的前面,从而实现字符串反转。
4. 嵌套 for-in
循环
有时我们需要处理多维结构,如二维列表或矩阵。在这种情况下,我们可以使用嵌套的 for-in
循环来访问每个元素。
示例:遍历二维列表
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=" ")
print() # 每行后换行
输出结果:
1 2 3
4 5 6
7 8 9
在这个示例中,外层 for
循环遍历每一行,内层 for
循环遍历每一行中的元素。
5. range()
函数与 for-in
语句结合
range()
函数是生成整数序列的内置函数,常用于生成循环的次数。你可以将 range()
与 for-in
语句结合使用来执行重复的任务。
示例:打印 1 到 5 的数字
for i in range(1, 6):
print(i)
输出结果:
1
2
3
4
5
示例:计算 1 到 10 的总和
total = 0
for i in range(1, 11):
total += i
print("1到10的总和:", total)
输出结果:
1到10的总和: 55
在这里,range(1, 11)
生成了从 1 到 10 的整数序列,for-in
语句遍历了这些整数,并将它们累加到 total
中。
6. for-in
语句的小技巧
6.1 continue
和 break
语句
在 for-in
循环中,你可以使用 continue
跳过当前的循环迭代,直接进入下一次迭代;也可以使用 break
终止整个循环,跳出循环体。
示例:使用 continue
跳过偶数
for num in range(1, 11):
if num % 2 == 0:
continue
print(num)
输出结果:
1
3
5
7
9
示例:使用 break
提前退出循环
for num in range(1, 11):
if num == 5:
break
print(num)
输出结果:
1
2
3
4
7. 课后练习
7.1 计算列表中所有数字的平方
给定一个数字列表,输出每个数字的平方。
7.2 找出字符串中的元音字母
遍历一个字符串,找出其中所有的元音字母并输出。
7.3 统计字典中值的数量
给定一个字典,统计其中每个值出现的次数。
8. 本章小结
for-in
语句是 Python 中非常重要的一种控制结构,广泛应用于遍历各种可迭代对象,进行数据处理和操作。通过掌握 for-in
语句,能够有效地处理数组、列表、字典等数据结构,进行灵活的迭代操作。结合 range()
函数、嵌套循环及 continue
、break
等语句,能够提高代码的执行效率和可读性。