如何解决在Python中一次迭代一个字符串2个或n个字符
邓诺关于清洁剂,但还有另一种选择:
for (op, code) in zip(s[0::2], s[1::2]):
print op, code
无副本版本:
from itertools import izip, islice
for (op, code) in izip(islice(s, 0, None, 2), islice(s, 1, None, 2)):
print op, code
解决方法
今天早些时候,我需要一次遍历2个字符的字符串,以解析格式如下的字符串"+c-R+D-E"
(有一些额外的字母)。
我最终完成了这个工作,但是看起来很丑。我最终评论了它在做什么,因为它感觉不太明显。几乎看起来像是pythonic,但并非完全如此。
# Might not be exact,but you get the idea,use the step
# parameter of range() and slicing to grab 2 chars at a time
s = "+c-R+D-e"
for op,code in (s[i:i+2] for i in range(0,len(s),2)):
print op,code
有一些更好/更清洁的方法可以做到这一点吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。