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)
GO TO FULL VERSION