这个 for 循环在 jupyter notebook 中是如何工作的?
how does this for loop works in jupyter notebook?
所以我正在 jupyter notebook 中学习这个 for 循环,我被告知要打印一次苹果,两次打印香蕉和三次共和国,这是代码:(正确)
a = ["apple", "banana", "republic" ]
for i in range(len(a)):
for j in range(i + 1):
print(a[i])
所以关键是,我不明白这段代码是如何工作的,比如 'i' 和 'j' 代表什么。谁能帮忙,谢谢!
在 python 中,循环是 foreach Like 循环,所以当你调用 range(number) 函数时,它会创建一个生成器(它是可迭代的)(当转换为列表时)看起来像这样:
print(list(range(3)))
>> [0,1,2]
并且 j 的值正在迭代抛出这些数字,例如,在外循环的第三次迭代中,第二次迭代中的内部循环 thvales 是
i=2
j=1
并且 len 函数返回一个表示列表长度的数字
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
— Brian Kernighan, Unix for Beginners
在代码中添加 print
语句,直到您理解发生了什么。
a = ["apple", "banana", "republic" ]
print('len(a): ', len(a))
for i in range(len(a)):
print('i: ', i, '; for j in range(', i+1, ')')
for j in range(i + 1):
print('j: ', j)
print(a[i])
现在 运行 看看它在做什么。
fruit
这里赋给了fruits
中的每一个值;因此 fruit in fruits
.
print(fruit)
将对 fruits
列表中的每个项目执行一次,每次将 fruit
分配给列表中从第一个开始的下一个值。
fruits = ['apple', 'banana', 'republic']
for fruit in fruits:
print(fruit)
apple
banana
republic
您可以使用 enumerate
函数获取一个元组,该元组不仅包含上述 fruit
变量,还包含 fruits
列表中的索引。
for idx, fruit in enumerate(fruits):
print(idx, fruit)
0 apple
1 banana
2 republic
range
函数可以帮助您 运行 对 idx
变量值进行 for 循环(+ 1,因为 idx
从 0
开始)。它本质上为您提供了类似于列表(称为迭代器)的东西,在本例中 [0] [0, 1] [0, 1, 2]
但实际值与我们无关。
for idx, fruit in enumerate(fruits):
for _ in range(idx + 1):
print(fruit)
apple
banana
banana
republic
republic
republic
检查 Google Colab 处的代码。
注。 _
是一个不会被使用的变量名的约定。
所以我正在 jupyter notebook 中学习这个 for 循环,我被告知要打印一次苹果,两次打印香蕉和三次共和国,这是代码:(正确)
a = ["apple", "banana", "republic" ]
for i in range(len(a)):
for j in range(i + 1):
print(a[i])
所以关键是,我不明白这段代码是如何工作的,比如 'i' 和 'j' 代表什么。谁能帮忙,谢谢!
在 python 中,循环是 foreach Like 循环,所以当你调用 range(number) 函数时,它会创建一个生成器(它是可迭代的)(当转换为列表时)看起来像这样:
print(list(range(3)))
>> [0,1,2]
并且 j 的值正在迭代抛出这些数字,例如,在外循环的第三次迭代中,第二次迭代中的内部循环 thvales 是
i=2
j=1
并且 len 函数返回一个表示列表长度的数字
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements. — Brian Kernighan, Unix for Beginners
在代码中添加 print
语句,直到您理解发生了什么。
a = ["apple", "banana", "republic" ]
print('len(a): ', len(a))
for i in range(len(a)):
print('i: ', i, '; for j in range(', i+1, ')')
for j in range(i + 1):
print('j: ', j)
print(a[i])
现在 运行 看看它在做什么。
fruit
这里赋给了fruits
中的每一个值;因此 fruit in fruits
.
print(fruit)
将对 fruits
列表中的每个项目执行一次,每次将 fruit
分配给列表中从第一个开始的下一个值。
fruits = ['apple', 'banana', 'republic']
for fruit in fruits:
print(fruit)
apple
banana
republic
您可以使用 enumerate
函数获取一个元组,该元组不仅包含上述 fruit
变量,还包含 fruits
列表中的索引。
for idx, fruit in enumerate(fruits):
print(idx, fruit)
0 apple
1 banana
2 republic
range
函数可以帮助您 运行 对 idx
变量值进行 for 循环(+ 1,因为 idx
从 0
开始)。它本质上为您提供了类似于列表(称为迭代器)的东西,在本例中 [0] [0, 1] [0, 1, 2]
但实际值与我们无关。
for idx, fruit in enumerate(fruits):
for _ in range(idx + 1):
print(fruit)
apple
banana
banana
republic
republic
republic
检查 Google Colab 处的代码。
注。 _
是一个不会被使用的变量名的约定。