Chinaunix首页 | 论坛 | 博客
  • 博客访问: 916642
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: Python/Ruby

2012-12-31 13:55:52

python每次处理固定个数的字符在很多情况下都会遇到,所以对次做了一下总结:

首先来看每次处理一个字符的情况,可以有如下方法去实现:

方法一:
  1. >>> a='1234567'
  2. >>> list(a)
  3. ['1', '2', '3', '4', '5', '6', '7']
  4. >>>
方法二:
  1. >>> a='1234567'
  2. >>> for i in a:
  3. ...     print i
  4. ...
  5. 1
  6. 2
  7. 3
  8. 4
  9. 5
  10. 6
  11. 7
  12. >>>
方法三:列表解析(map)

  1. >>> a
  2. '1234567'
  3. >>> [int(i)+1 for i in a]
  4. [2, 3, 4, 5, 6, 7, 8]
  5. >>>

但是如果每次处理两个字符或者更多的字符,上面的方法就不好用了,下面我总结了如下两种:

方法一:使用分片操作,每次处理两个字符:

  1. >>> a='abcdefghijk'
  2. >>> num=0
  3. >>> while True:
  4. ...     str = a[num:num+2]
  5. ...     if str:
  6. ...         print str
  7. ...     else:
  8. ...         break
  9. ...     num += 2
  10. ...
  11. ab
  12. cd
  13. ef
  14. gh
  15. ij
  16. k
  17. >>>
方法二:使用正则表达式,分割字符串,每次处理3个字符

  1. >>> import re
  2. >>> a="1234567890"
  3. >>> for i in re.findall(".{1,3}",a):
  4. ...     print i
  5. ...
  6. 123
  7. 456
  8. 789
  9. 0
  10. >>>
可以根据需求更改每次处理n个字符。

阅读(1267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~