python - 我什么时候应该使用 iter 函数?

标签 python list loops

这段代码

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/

相关文章:

python - 如何将列表从 View 传递到 django 中的模板

Python - 用于比较自定义订单的 lambda 比较器函数

python - 为什么 'groupby(x, np.isnan)' 的行为与 'groupby(x) if key is nan' 不同?

c# - Enumerable.Empty<T>() 等同于 IList?

css - 如何使用 Sass 到 CSS 创建 H1 到 H6 标题并减小字体大小

php - 用 PHP 循环或 MySQL 重构坏数据库

Python-素数加法为偶数

python - 正则表达式匹配括号及其内容(如果它不以下划线开头)

python - 如何加入两个没有重复的元组列表

c++ - 从单独的文件中读取每个字符?