CodeGym /课程 /Python SELF ZH /列表循环

列表循环

Python SELF ZH
第 7 级 , 课程 6
可用

6.1 for循环

在Python中,通过列表元素进行循环常通过 for循环实现。这是迭代列表时最常用的方法之一, 允许为列表中的每个元素执行一段代码。

for循环基础

Python中的for循环遍历列表中的每个元素,临时 将当前元素的值赋给for关键字后面指定的变量。例子:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

可以通过切片实现列表的逆向遍历:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
    print(fruit)

6.2 带索引的for循环

除了使用经典的for遍历列表,还可以结合range()函数 使用for循环遍历列表。 这样不仅允许访问元素本身,还可以访问其位置, 在执行更复杂的数据操作时非常有用。

索引迭代基础

为了能够在迭代时访问每个元素的索引,可以使用:


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

使用索引的优势

在循环中使用索引不仅可以访问 每个元素,还可以 原地修改列表中的元素。 当需要在迭代过程中修改列表时,这特别有用。

例子:


my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
    my_list[i] = my_list[i] * 2

复杂操作示例

使用索引很容易实现需要同时 访问列表中多个元素的算法,例如比较当前 元素与前一个或后一个元素:

例子:


my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
    if my_list[i] > my_list[i - 1]:
        print(f'{my_list[i]} is greater than {my_list[i - 1]}')

6.3 使用enumerate()函数

在Python中, enumerate()函数提供了一种方便的 迭代列表元素并同时访问其索引的方法。 当需要在循环中处理索引和列表元素值时,这尤其有用。

enumerate()函数基础

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


my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
    print(f'Index: {index}, Element: {element}')

这样你不仅有元素还有它的索引。

enumerate()的优势

使用enumerate()可以使代码更具可读性, 并避免需要使用range(len(...))手动管理索引。 这简化了对列表元素的操作, 如修改、访问元素和执行条件检查。

使用示例

enumerate()非常适合需要 同时修改列表中的元素或比较元素及其 索引的任务:


my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
    if index % 2 == 0:
        print(f'Element {element} at even index {index}')

6.4 while循环

我们讨论了for,现在让我们来谈谈while循环。这种循环在处理列表元素时也很有用。

提醒一下,while循环从检查条件开始。 如果条件为真,执行循环体,然后再次检查条件。 这个过程会重复,直到条件变为假。

列表迭代示例

假设你有一个数字列表,并希望迭代该列表直到遇到某个特定值:


numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
    print(numbers[i])
    i += 1

for循环差别不大,对吧?但有些情况下我们不 需要使用索引来处理列表元素。例如, 当列表中存储了一些任务,需要一个一个地从列表中取出, 执行并从列表中删除。

这个代码可以大致这样表达:


tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
    task = tasks.pop()
    print(task)
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION