微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Python中一次迭代一个字符串2个或n个字符

如何解决在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 举报,一经查实,本站将立刻删除。