【问题标题】:Can you explain how the lists were iterated?你能解释一下列表是如何迭代的吗?
【发布时间】:2021-03-09 02:32:37
【问题描述】:
list_1=[7,8,9,1,2,4]
list_2=[1,2,4]

for i in list_1:
   for j in list_2:
       if i>j:
         print(i)

主要问题我不明白输出

7
7
7
8
8
8
9
9
9
2
4
4

为什么有3次(7,8,9) 2次(4,4).... 什么是逻辑 我是初学者..

【问题讨论】:

  • 在list_2的第一次迭代中,7不大于1, 2, 4,所以打印3次,89相同。但是,对于1,它不大于1, 2, 4,因此它永远不会被打印出来。对于2,它大于1,所以它打印一次。对于4,它大于1, 2,所以它打印两次。嵌套循环不是很清楚吗?
  • 为什么不在 if 语句之前执行 print (i, j) 以查看在 for 循环的每次迭代中计算的值。它将帮助您更好地理解代码
  • 这能回答你的问题吗? How do nested for loops work?

标签: python-3.x list for-loop


【解决方案1】:

你有一个嵌套循环。第一个循环遍历list_1 项目[7,8,9,1,2,4]。第二个循环遍历list_2 items [1,2,4]

对于list_1 的每次迭代,您都在检查list_1 中的值是否大于list_2 中的值。所以代码工作如下:

外循环:i = 7,遍历内循环值

if 7 > 1  #this is True - so print 7

if 7 > 2  #this is True - so print 7

if 7 > 4  #this is True - so print 7

外循环:i = 8,遍历内循环值

if 8 > 1  #this is True - so print 8

if 8 > 2  #this is True - so print 8

if 8 > 4  #this is True - so print 8

外循环:i = 9,遍历内循环值

if 9 > 1  #this is True - so print 9

if 9 > 2  #this is True - so print 9

if 9 > 4  #this is True - so print 9

外循环:i = 1,遍历内循环值

if 1 > 1  #this is False - so nothing is printed

if 1 > 2  #this is False - so nothing is printed

if 1 > 4  #this is False - so nothing is printed

外循环:i = 2,遍历内循环值

if 2 > 1  #this is True  - so print 2

if 1 > 2  #this is False - so nothing is printed

if 1 > 4  #this is False - so nothing is printed

外循环:i = 4,遍历内循环值

if 4 > 1  #this is True  - so print 4

if 4 > 2  #this is True  - so print 4

if 1 > 4  #this is False - so nothing is printed

这就是你得到的输出。

【讨论】:

    【解决方案2】:

    了解循环

    1. 当你执行时,for i in list_1 表示 i 遍历 list_1 (7, 8, 9, 1, 2, 4) 中的所有项目。
    2. 作为执行 到达for j in list_2j 遍历list_2 (1, 2, 4)。
    3. 现在if i > j 代码表示如果值i 大于所有j,则打印i 中的值。

    工作流程


    i 开始迭代时,j 也开始迭代。并且ij 完成迭代之前不会继续下一个元素。

    i7,意思是if 7 is greater than 1, 2, and 4 然后是print 7

    所以7 将被打印3 次,因为7 > 17 > 27 > 4

    然后i 继续到下一个元素,在本例中为8list_1 中的下一个索引)。

    因为8 > 18 > 28 > 4,它会被打印3次。


    现在说i 已达到号码2。为什么它只打印一次?因为在这种情况下2 只大于1

    【讨论】:

      猜你喜欢
      • 2019-05-14
      • 2023-01-12
      • 2017-05-12
      • 1970-01-01
      • 2017-03-19
      • 2023-03-27
      • 1970-01-01
      • 2021-10-27
      相关资源
      最近更新 更多