如何查看我的迭代器在哪个索引处? [复制]

Posted

技术标签:

【中文标题】如何查看我的迭代器在哪个索引处? [复制]【英文标题】:How can I see at which index my iterator is? [duplicate] 【发布时间】:2016-09-11 07:54:12 【问题描述】:

所以我有一个字符串source,我用迭代器在其上循环:

iterator = iter(source)
for char in iterator:
  do stuff

但是,现在假设我在do stuff 中有一个检查,我将迭代器的值与“h”进行比较。然后我想看看 'h' 后面是否有“ello”,以某种方式,并将其后的前十个字符添加到列表中。 为此,我自己的想法是找出哪个索引对应于迭代器的当前位置,这样我就可以说:

indIt = index(char)
if source[indIt + 1: indIt + 6] == "ello ":
  someList.append(source[indIt + 7:indIt + 16])
  indIt += 17
  char = indIt #which may also be fun to know how it can be done, if

这意味着对于给定的输入 hello Sandra, oh and hello Oscar, i welcome you both!, someList 将包含 ["Sandra, oh", "Oscar, i w"]。

那么我能否以某种方式找出迭代器的当前位置对应于哪个索引?

【问题讨论】:

使用enumerate 没有这个功能。 @ppperry:enumerate() 怎么了? @ppperry:是的,有,是什么让你觉得没有? 这个问题是重复的。 【参考方案1】:

迭代器不公开索引,因为不一定有一个序列底层。

使用enumerate() 函数将一个添加到您的迭代中:

for index, char in enumerate(iterator):

现在迭代产生(index, value) 元组,您可以使用元组分配将其分配给两个单独的变量。

【讨论】:

以上是关于如何查看我的迭代器在哪个索引处? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

迭代通过2d数组查看邻居,除了边界

Yii2-如何限制用户查看索引页面中的其他数据

如何使用 Python 中的变量删除列表中特定索引处的元素? [复制]

如何查看文件夹大小

如何使用 jquery 或 javascript 删除索引处的行? [复制]

如何根据元组的索引值从列表中删除重复的元组,同时保持元组的顺序? [复制]