这段代码
for i in range(100, -1, -1):
print(i)
等同于:
for i in iter(range(100, -1, -1)):
print(i)
从 0 .. 100 个数字的列表中按降序打印的数字。
我知道 sentinel 属性一旦到达它就会停止,但除此之外我什么时候应该考虑使用 iter()
函数?
谢谢。
最佳答案
这是一个例子。假设我有一个项目列表,其中一个项目计数后面是该项目数,一遍又一遍。
[1, 'some data', 3, 'some data', 'some data', 'some data', 2, ...]
我可能想使用嵌套的 for
循环遍历此数据:外循环获取项目计数,内循环获取列表的以下 n
元素.这两个循环可以共享一个显式迭代器:
from itertools import islice
my_data = [1, "a", 3, "b", "c", "d", 2, "e", "f"]
my_iter = iter(my_data)
for i, count in enumerate(my_iter):
print(f"Round {i}")
for item in islice(my_iter, count):
print(f' {item}')
此代码产生输出
Round 0
a
Round 1
b
c
d
Round 2
e
f
关于python - 我什么时候应该使用 iter 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60216804/