如何解决在python中使用iter进行迭代时,如何访问当前元素索引?
我试图在此处循环一些字母,根据当前字母的值一次打印单个或多个字母。
如图所示,在C的情况下还要跳过3个字母(用next()
),这就是为什么我在第二行使用iter()
alp = "ABCDEFGHIJKLMnop"
alpiter = iter(alp)
for i in range(len(alpiter)):
if alpiter[i] == 'J':
print(alp[i:i+3])
# or print(alpiter[i:i+3]) not sure
elif i == 'C':
for l in range(3):
next(alpiter)
print(i)
Traceback (most recent call last):
File "try.py",line 3,in <module>
for i in range(len(alpiter)):
TypeError: object of type 'str_iterator' has no len()
显然,iter()
返回的可迭代对象没有长度。
我通过使用计数器变量找到了解决方法:
alp = "ABCDEFGHIJKLMnop"
alpiter = iter(alp)
cn = 0
for i in alpiter:
if i == 'J':
print(alp[cn:cn+3])
elif i == 'C':
for l in range(3):
next(alpiter)
cn += 1
print(i)
cn += 1
我的问题;在iter()
循环中使用for
时,是否有原生的 pythonic 方式来访问当前元素的索引?当然没有柜台。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。