Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216171
  • 博文数量: 39
  • 博客积分: 945
  • 博客等级: 准尉
  • 技术积分: 532
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-04 17:25
文章分类

全部博文(39)

文章存档

2012年(39)

我的朋友

分类: Python/Ruby

2012-05-24 10:56:27



经常用到pyhton字符串的大小写转换, 这里梳理下:

1、对字符串中所有字符(仅对字母有效)的大小写转换,有两个方法:

点击(此处)折叠或打开

  1. print 'just to test it'.upper() #所有字母都转换成大写
  2. JUST TO TEST IT  
  3. print 'JUST TO TEST IT'.lower() #所有字母都转换成小写
  4. ust to test it

2、对字符串中的字符(仅对字母有效)部分大小写转换:

点击(此处)折叠或打开

  1. print 'JUST TO TEST IT'.capitalize() #字符串的首字母转换成大写, 其余转换成小写
  2. Just to test it
  3.   
  4. print 'JUST TO TEST IT'.title() #字符串中所有单词的首字母转换成大写, 其余转换成小写
  5. Just To Test It

3 判断字符串大小写函数:

点击(此处)折叠或打开

  1. print 'JUST TO TEST IT'.isupper()
  2.  True
  3.    
  4.  print 'JUST TO TEST IT'.islower()
  5.  False
  6.  
  7.  print 'JUST TO TEST IT'.istitle()
  8.  False



它们跟上面提到的几个方法是对应的;发现python没有提供iscapitalize方法, 那就自己写一个吧:

点击(此处)折叠或打开

  1. #!/usr/bin/python

  2. import string
  3. notrans = string.maketrans('', '')
  4. def containAny(str, strset):
  5.     return len(strset) != len(strset.translate(notrans, str))

  6. def iscapitalized(s):
  7.     return s == s.capitalize() and containAny(s, string.letters)
上面用到了string.maketrans方法:

点击(此处)折叠或打开

  1. In [8]: map = string.maketrans('123','abc') #创建映射表,将字符串含有123的替换成adc

  2. In [9]: print '123456'.translate(map)
  3. abc456

  4. In [10]: print '123456'.translate(map,'478') #用创建的映射表转换字符串,然后在根据后面的字符串‘478’,去掉相同的字符
  5. abc56

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