ZetCode

Python for 循环

最后修改于 2024 年 1 月 29 日

Python 列表循环展示了如何在 Python 中遍历列表。

Python 循环定义

循环 是一系列指令,会持续重复执行,直到达到某个特定条件。例如,我们有一个项目集合,并创建一个循环来遍历该集合的所有元素。

在 Python 中,我们可以使用 for 和 while 语句以及列表推导式来循环遍历列表元素。

Python 列表的 for 循环

Python for 语句按照列表元素出现的顺序遍历它们。

list_loop_for.py
#!/usr/bin/python

words = ["cup", "star", "falcon", "cloud", "wood", "door"]

for word in words:
    
    print(word)

该示例使用 `for` 语句遍历单词列表的元素。

$ ./list_loop_for.py 
cup
star
falcon
cloud
wood
door

`for` 循环有一个可选的 `else` 语句,当循环完成时执行。

list_loop_for2.py
#!/usr/bin/python

words = ["cup", "star", "falcon", "cloud", "wood", "door"]

for word in words:

    print(word)
else:

    print("Finished looping")

我们使用 `for` 循环遍历单词列表。迭代结束后,我们打印位于 `else` 关键字后面的“Finished looping”消息。

$ ./list_loop_for2.py
cup
star
falcon
cloud
wood
door
Finished looping

Python 列表的 enumerate 循环

`enumerate` 函数允许我们使用列表元素的索引来遍历它们。

list_loop_enumerate.py
#!/usr/bin/python

words = ["cup", "star", "falcon", "cloud", "wood", "door"]

for idx, word in enumerate(words):

    print(f"{idx}: {word}")

借助 `enumerate` 函数,我们打印出列表元素的索引。

$ ./list_loop_enumerate.py 
0: cup
1: star
2: falcon
3: cloud
4: wood
5: door

Python 列表的 while 循环

while 语句是一种控制流语句,允许根据给定的布尔条件重复执行代码。

list_loop_while.py
#!/usr/bin/python

vals = [1, 2, 3, 4, 5, 6, 7]

n = len(vals)
i = 0
mysum = 0

while i < n:

    mysum += vals[i]
    i += 1

print(f'The sum is {mysum}')

该示例计算列表中值的总和并将其打印到终端。

$ ./list_loop_while.py
The sum is 28

Python 列表的列表推导式循环

列表推导式是一种句法结构,它基于现有列表创建新列表。

list_compr.py
#!/usr/bin/python

words = ["cup", "star", "falcon", "cloud", "wood", "door"]

[print(len(word)) for word in words]

该示例打印列表中每个单词的长度。

$ ./list_compr.py 
3
4
6
5
4
4

Python 嵌套列表循环

我们可以在一个列表中包含嵌套列表。

loop_nested.py
#!/usr/bin/python

nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for i in nums:

    for e in i:

        print(e, end=' ')

    print()

我们有一个二维整数列表。我们使用两个 `for` 循环遍历其元素。

$ ./loop_nested.py 
1 2 3 
4 5 6 
7 8 9 

Python 列表的 zip 循环

`zip` 函数从给定的可迭代对象创建迭代器。

for_loop_zip.py
#!/usr/bin/python

words1 = ["cup", "bottle", "table", "rock", "apple"]
words2 = ["trousers", "nail", "head", "water", "pen"]

for w1, w2 in zip(words1, words2):

    print(w1, w2)

在该示例中,我们在一个 `for` 循环中遍历两个列表。

$ ./for_loop_zip.py
cup trousers
bottle nail
table head
rock water
apple pen

来源

Python 数据结构 - 语言参考

在本文中,我们遍历了 Python 中的列表。

作者

我叫 Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 Python 教程