首页 > 解决方案 > 嵌套循环 - 请解释

问题描述

我有这个嵌套循环:

adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]

for x in adj:
  for y in fruits:
    print(x, y)

通过阅读它,我期望输出是:

red apple
big banana
tasty cherry

有人可以向我解释为什么我会得到吗?

red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry

我真的很困惑,无法解决!

非常感谢!

标签: python

解决方案


每次循环运行时,循环内的所有事情都会发生(尽管可能会从封闭函数中短路或退出循环:,,break或引发未在本地捕获的异常,或任何迫使程序立即退出的事情拔掉电源插头 :) )continuereturn

内循环在外循环内部(这就是它们被嵌套的意思),所以整个内循环会分别发生,一次又一次,每次都通过外循环。

外循环第一次运行时,x设置为'red'. 因此,该值用于内部循环的每次迭代,从而与每个y值配对。对于其余的迭代,依此类推。

如果您想要您期望的行为,请参阅如何并行遍历两个列表?.


推荐阅读