小白学 Python
课程GitHub
© 2026 小白学 Python · 基于 walter201230/Python 教程
课程目录GitHub
Python 环境加载中…
迭代0 / 5
12345

迭代

5 道练习题·预计 35 分钟·做对一题解锁下一段

教学 02 / 06

第七节:迭代

这一节内容挺多的,而且不太好理解。新手看完后可能还会一脸懵——这其实很正常。如果你看完是迷糊的,建议先继续学后面的内容,等学完一轮再回来重看几次,那时候就豁然开朗了。

主题:迭代器和生成器

  • 一、迭代(什么是迭代)
  • 二、Python 迭代器(iter / next)
  • 三、list 生成式(列表生成式)
  • 四、生成器(generator / yield)
  • 五、综合例子(反向迭代、同时迭代多个序列)

这一节的核心其实就两个词:迭代 和 生成器。理解了它们,你以后处理「一组数据」时就能写出更优雅、更省内存的代码。

教学 01 / 06

一、迭代

1、什么叫迭代?

比如在 Java 中,我们通过 List 集合的下标来遍历 List 集合中的元素;在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历它,这种遍历就叫迭代(iteration)。

可是,Python 的 for 循环抽象程度要 高于 Java 的 for 循环。为什么这么说?因为 Python 的 for 循环不仅可以用在 list 或 tuple 上,还可以作用在 其他可迭代对象 上。

也就是说,只要是可迭代的对象,无论有没有下标,都是可以迭代的。

2、各种各样的迭代

python
# 1、for 循环迭代字符串
for char in 'liangdianshui':
    print(char, end=' ')

print('\n')

# 2、for 循环迭代 list
list1 = [1, 2, 3, 4, 5]
for num1 in list1:
    print(num1, end=' ')

print('\n')

# 3、for 循环也可以迭代 dict(字典)
dict1 = {'name': '两点水', 'age': '23', 'sex': '男'}

for key in dict1:           # 迭代 dict 中的 key
    print(key, end=' ')

print('\n')

for value in dict1.values():  # 迭代 dict 中的 value
    print(value, end=' ')

print('\n')

# 如果 list 里面一个元素有两个变量,也是很容易迭代的
for x, y in [(1, 'a'), (2, 'b'), (3, 'c')]:
    print(x, y)

输出的结果:

l i a n g d i a n s h u i 

1 2 3 4 5 

name age sex 

两点水 23 男 

1 a
2 b
3 c

3、记住一个口诀

能放进 for ... in 后面的东西,就叫「可迭代对象」。

字符串、list、tuple、dict、set,甚至我们后面要讲的「生成器」,都是可迭代对象。

练习 1 / 5·用 for 把 list 累加题目有问题?

已经给了你一个 list:

numbers = [1, 2, 3, 4, 5]

请用 for 循环把 numbers 里的所有元素加起来,放进变量 total,然后 print(total)。

输出应该是:

15
main.py
可编辑
🔒做对当前题解锁下一段 ·0/5
本章目录

迭代

  1. 教学 02第七节:迭代
  2. 教学 01一、迭代
  3. 练习 1用 for 把 list 累加
  4. 教学 03二、Python 迭代器
  5. 练习 2 🔒用 iter 和 next 一个一个取
  6. 教学 06三、list 生成式(列表生成式)
  7. 练习 3 🔒列表生成式:偶数的平方
  8. 教学 04四、生成器(generator)
  9. 练习 4 🔒写一个生成器函数
  10. 教学 05五、迭代器和生成器的综合例子
  11. 练习 5 🔒用 zip 配对两个 list
← 上一章06 · 函数
迭代
下一章 →08 · 面向对象