如何查看迭代器的索引?

时间:2016-05-15 12:42:29

标签: python iterator

所以我有一个字符串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,哦"," Oscar,我w"]。

我能以某种方式找出迭代器当前位置对应的索引吗?

1 个答案:

答案 0 :(得分:6)

迭代器不会公开索引,因为它不必是序列的基础索引。

使用enumerate()函数在迭代中添加一个:

for index, char in enumerate(iterator):

现在迭代产生(index, value)个元组,你可以使用元组赋值将它们分配给两个独立的变量。