python 中迭代和遍历的区别

什么是迭代?

迭代就是重复运行一段代码语句块的能力。分为两种方式

  1. 使用递归函数
  2. 使用循环(forwhile 循环)

假设有个需求,要按照降序打印10以下(包括10),0 以上的整数,用递归和循环都可以实现,但都要重复运行一段代码语句,就是迭代。

递归函数实现

先看使用递归函数如何实现

def countdown(n):
  if n>0:
    print(n)
    countdown(n-1)
  else:
    print('It\'s over!')

countdown(10)

从上面代码中我们定义一个函数 countdown, 每打印一个数字,这个函数就会重复运行一次,也就是迭代一次。

循环实现 (for 和 while 循环)

先看代码

for i in range(10, 0, -1):
  print(i)

n = 10
while n>0:
  print(n)
  n = n-1

不论是 for 还是 while, 执行流程都会执行完语句体,之后再从语句体的最开头循环执行,每执行一次也称为迭代一次。

什么是遍历?

举个栗子,假设有一个列表 list=['a','b','c'], 我们要打印出它所有的元素,这就叫一次遍历。
是指对一个序列中的所有元素都执行动作,就叫做遍历。

例如对上面 list 的遍历

list = ['a', 'b', 'c']
for i in list:
  print(i)

从实现代码可看出,这次遍历是通过 for 循环来实现的,也就是迭代来实现的。
当然也可以不通过迭代来实现,一个一个按照下标打印出来,也能遍历,不过效率太低了。

总结

遍历是目的,迭代是手段。

posted @ 2018-11-03 19:57  ReyCG  阅读(5073)  评论(0编辑  收藏  举报