Skip to content
 
📑标签
🏷软件 🏷robot 🏷python

for循环


第1重:基础遍历术

python
# 遍历列表
fruits = ["苹果", "香蕉", "樱桃"]
for fruit in fruits:
    print(f"今天吃:{fruit}")  # 输出每个水果 

# 搭配range使用
for i in range(3):  # 生成0-2的序列
    print(f"第{i+1}次循环")  #

第2重:高阶迭代法

python
# 字典双杀技
user = {"name": "哈利", "age": 17, "house": "格兰芬多"}
for key in user:  # 遍历键
    print(key) 

for key, value in user.items():  # 键值双收
    print(f"{key}: {value}")  # 

# 枚举神器enumerate
for index, fruit in enumerate(fruits, 1):  # 从1开始计数
    print(f"第{index}个水果是{fruit}")  #

第3重:组合技zip

python
names = ["赫敏", "罗恩", "纳威"]
scores = [99, 85, 72]
for name, score in zip(names, scores):
    print(f"{name}考了{score}分")  # 自动对齐数据

第4重:推导式奥义

python
# 列表推导式
squares = [x2 for x in range(10)]  # 生成平方列表 

# 字典推导式
cube_dict = {x: x3 for x in range(5)}  # {0:0, 1:1...}

# 生成器表达式(内存友好)
big_data = (x*2 for x in range(1000000))  #

第5重:循环控制术

python
# break/continue妙用
for num in range(10):
    if num == 3:
        continue  # 跳过3 
    if num == 7:
        break     # 提前终止
    print(num)

# else子句(循环正常结束触发)
for n in range(2, 5):
    if n % 2 == 0:
        print(f"{n}是偶数")
else:
    print("遍历完成!")  #

第6重:嵌套循环阵

python
# 二维列表遍历
matrix = [[1,2,3], [4,5,6], [7,8,9]]
for row in matrix:
    for num in row:
        print(num, end=' ')
    print()  # 换行 

# 九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}×{i}={i*j}", end='\t')
    print()  #

第7重:高阶迭代术

python
# 反向遍历
for fruit in reversed(fruits):
    print(fruit)  # 樱桃、香蕉、苹果

# 同时遍历索引和元素(不用enumerate)
for i in range(len(fruits)):
    print(f"{i}:{fruits[i]}")  #

第8重:文件处理流

python
# 逐行读取文件
with open("magic_book.txt") as f:
    for line_num, line in enumerate(f, 1):
        print(f"{line_num}: {line.strip()}")  #

第9重:生成器秘术

python
# 自定义生成器
def fibonacci(limit):
    a, b = 0, 1
    while a < limit:
        yield a
        a, b = b, a+b

for num in fibonacci(1000):
    print(num)  # 生成斐波那契数列

⚡ 性能优化Tips:

  1. 遍历大文件建议使用生成器
  2. 避免在循环内重复计算固定值
  3. 多层循环把大循环放外层
  4. 使用itertools模块优化复杂迭代 [4]

🎯 实战案例:词频统计

python
text = "python is cool python is powerful"
word_count = {}
for word in text.split():
    word_count[word] = word_count.get(word, 0) + 1
print(word_count)  # {'python':2, 'is':2...}