CodeGym /课程 /Python SELF ZH /遍历元组元素的循环

遍历元组元素的循环

Python SELF ZH
第 8 级 , 课程 5
可用

14.1 for 循环

在 Python 中,遍历元组的元素通常通过 for 循环实现。这是 最常见的方法,它允许简单地访问元组的每一个 元素,并为其执行代码块。

for 循环

for 循环遍历元组的每一个元素,暂时 将当前元素的值赋给在 for 关键字后指定的变量。例子:


my_tuple = (1, 2, 3, 4, 5)
for number in my_tuple:
    print(number)

你已经有了使用列表和 for 循环的经验,所以让我们 看一些实际的例子:

示例 1:元组元素求和

我们来看一个将元组中所有元素求和的例子。


my_tuple = (10, 20, 30, 40, 50)
total = 0

for number in my_tuple:
    total += number

print(f"元组元素的和: {total}")

在这个例子中,我们创建了一个元组 my_tuple 和一个用于存储 元素和的变量 total。使用 for 循环,我们遍历每一个 元组元素并将其加到 total 上。最终得到所有 元素的和。

示例 2:寻找最大元素

现在我们来看一个在元组中寻找最大元素的例子。


my_tuple = (5, 17, 23, 11, 2)
max_value = my_tuple[0]

for number in my_tuple:
    if number > max_value:
        max_value = number

print(f"元组中的最大值: {max_value}")

在这个例子中,我们用元组的第一个元素初始化变量 max_value。 然后我们遍历所有元组元素,比较每个 元素和当前最大值,若找到更大的值则更新 max_value

14.2 嵌套元组

元组可以包含其他元组,可以使用 for 循环来 遍历嵌套的数据结构。


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

for inner_tuple in nested_tuple:
    for number in inner_tuple:
        print(number, end=' ')
    print()

在这个例子中,nested_tuple 包含元组。我们使用嵌套的 for 循环来遍历每个嵌套元组的元素。执行结果:


1 2 3 
4 5 6 
7 8 9 

14.3 带索引的 for 循环

和列表一样,元组的元素也有索引,因此可以 使用 for 循环(结合 range() 函数)来遍历其元素。这允许不仅 访问元素,还能访问它们的位置信息,这在进行更复杂的 数据操作时会很有用。

索引迭代基础

要遍历元组并访问每个元素的索引,可以 使用这样的代码:


my_tuple = ('a', 'b', 'c', 'd')
for i in range(len(my_tuple)):
    print(f'index: {i}, Element: {my_tuple[i]}')

使用索引的好处

使用索引可以轻松实现需要同时 访问多个元组元素的算法,例如,比较当前 元素与之前或之后的元素。

示例:


my_tuple = (15, 20, 23, 18, 22, 19, 21)
for i in range(1, len(my_tuple)):
    if my_tuple[i] > my_tuple[i - 1]:  # 与前一个元素比较
        print(f'{my_tuple[i]} 大于 {my_tuple[i - 1]}')

使用带索引的 for 循环进行数据处理

假设我们有一个包含一周温度数据的元组,我们想 计算平均温度,排除极端值(最低 和最高温度)。


temperatures = (15, 20, 23, 18, 22, 19, 21)
sorted_temps = sorted(temperatures)

# 排除第一个和最后一个温度
filtered_temps = sorted_temps[1:-1]

average_temp = sum(filtered_temps) / len(filtered_temps)
print(f"一周的平均温度(不包括极端值): {average_temp}")

14.4 使用 enumerate() 函数

在 Python 中,函数 enumerate() 提供了一种方便的 方式来遍历元组的元素,同时访问它们的索引。 这在需要在循环中同时处理列表元素的索引和值时尤其有用。

函数 enumerate() 的基础

函数 enumerate() 将元组包装成一个特殊对象并 返回一个迭代器,该迭代器生成由 元组元素的索引和值组成的元组对:


my_tuple = ('apple', 'banana', 'cherry')
for index, element in enumerate(my_tuple):
    print(f'index: {index}, Element: {element}')

现在你不仅有元素,还有它的索引。

enumerate() 的优点

使用 enumerate() 使代码更加易读, 并避免了必须手动通过 range(len(…)) 管理索引的需要。这简化了列表上的操作, 如修改、访问元素和执行条件检查。

使用示例

有时需要找到元组中某个值出现的所有索引。


my_tuple = (1, 2, 3, 2, 4, 2, 5)
search_value = 2
indices = []

for index, value in enumerate(my_tuple):
    if value == search_value:
        indices.append(index)

print(f"值 {search_value} 出现在索引:{indices}")

这个代码将找到值 2 在元组中出现的所有索引:


值 2 出现在索引: [1, 3, 5]

基于索引的数据过滤

看个例子,我们过滤数据,保留 只有偶数索引的元素。


my_tuple = ('a', 'b', 'c', 'd', 'e', 'f')

filtered_tuple = tuple(value for index, value in enumerate(my_tuple) if index % 2 == 0)
print(f"带有偶数索引元素的元组: {filtered_tuple}")

这个代码创建了一个新的元组,只包含 偶数索引的元素:


带有偶数索引元素的元组: ('a', 'c', 'e')
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION