您的位置:

Python实践中的嵌套循环

一、嵌套循环的简介

在Python编程中,嵌套循环是一个非常重要的概念。它是指在循环体内,再嵌套另一个循环,用来实现多层循环控制,从而遍历数据、生成序列、筛选数据等操作。

嵌套循环的语法结构为:

for x in 元素1:
    for y in 元素2:
        #执行语句

其中,元素1和元素2可以是任意类型的Python对象,只要可以被迭代就可以使用。执行语句的内容可以是任意的Python代码。

下面展示一个简单的嵌套循环示例,用来实现打印九九乘法表:

for i in range(1, 10):
    for j in range(1, i+1):
        print(i, '*', j, '=', i*j, end='\t')
    print()

运行结果如下:

1 * 1 = 1	
2 * 1 = 2	2 * 2 = 4	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25	
6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36	
7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49	
8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64	
9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72	9 * 9 = 81	

二、遍历二维数组

在Python中,我们经常需要处理多维数组。如果是二维数组,我们就可以使用嵌套循环来遍历或者处理。

下面展示一个示例,用来计算一个二维数组中所有元素的和:

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
total = 0
for row in arr:
    for elem in row:
        total += elem
print(total)

运行结果为:

45

三、生成嵌套列表

在Python中,我们也可以生成嵌套列表。这个需要使用到列表推导式,结合嵌套循环可以很方便地实现。

下面展示一个示例,用来生成一个2*3的嵌套列表:

lst = [[0 for j in range(3)] for i in range(2)]
print(lst)

运行结果为:

[[0, 0, 0], [0, 0, 0]]

四、选择排序算法

选择排序是一种基本的排序算法,它的基本思路是每次从待排序元素中选择最小(或最大)的一个元素,将其放到已排序序列的末尾。在Python中,我们也可以使用嵌套循环来实现选择排序。

下面展示一个示例,用来对一个列表进行选择排序:
lst = [5, 3, 8, 6, 4, 2, 7, 1]
n = len(lst)
for i in range(n-1):
    min_idx = i
    for j in range(i+1, n):
        if lst[j] < lst[min_idx]:
            min_idx = j
    lst[i], lst[min_idx] = lst[min_idx], lst[i]
print(lst)

运行结果为:

[1, 2, 3, 4, 5, 6, 7, 8]

五、计算圆周率

计算圆周率是一个经典的计算问题,可以使用嵌套循环来进行实现。

下面展示一个示例,用来计算圆周率的值:

from random import random
from math import sqrt

n = 1000000
cnt = 0

for i in range(n):
    x = random()
    y = random()
    if sqrt(x**2 + y**2) < 1:
        cnt += 1

pi = 4 * cnt / n
print(pi)

运行结果为:

3.142704

六、总结

嵌套循环是Python编程中一个非常实用的概念。它可以用来遍历多维数据、生成嵌套列表、实现排序算法等。掌握嵌套循环的基本语法结构,可以让我们的Python编程更加灵活和高效。