如何查看我的迭代器在哪个索引处? [复制]
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)
元组,您可以使用元组分配将其分配给两个单独的变量。
【讨论】:
以上是关于如何查看我的迭代器在哪个索引处? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 中的变量删除列表中特定索引处的元素? [复制]