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_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)..我是初学者的逻辑是什么..
for i in list_1意味着 i 遍历list_1( 7, 8, 9, 1, 2, 4) 中的所有项目。for j in list_2,j迭代list_2( 1, 2, 4)。if i > j代码意味着如果该值i大于 all j,则打印该值 in i。i开始迭代时,也j开始迭代。并且在完成迭代i之前不会继续到下一个元素。j
说i是7,是指if 7 is greater than 1, 2, and 4那么print 7。
So7将被打印 3 次,因为7 > 1,7 > 2和7 > 4.
然后i继续到下一个元素,在这种情况下是8(下一个索引list_1)。
它将被打印 3 次,因为8 > 1, 8 > 2, 8 > 4.
现在说i已经达到数2。为什么它只打印一次?因为在这种情况下2只大于。1
你有一个嵌套循环。第一个循环遍历list_1items [7,8,9,1,2,4]。第二个循环遍历list_2项目[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
这会产生你得到的输出。