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:
- 遍历大文件建议使用生成器
- 避免在循环内重复计算固定值
- 多层循环把大循环放外层
- 使用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...}