python学习笔记(五)字符串函数二

原文链接:http://blog.svenapps.com/post/python-xue-xi-bi-ji/python-xue-xi-bi-ji-wu-zi-fu-chuan-han-shu-er#content

注:本资料是个人学习笔记,仅供参考

1.maketrans和translate

     1)string.maketrans设置字符串转换规则表(translation table)
     allchars = string.maketrans('', '')#所有的字符串,即不替换字符串
        aTob = string.maketrans('a','b')#将字符a转换为字符b
 
     2).translate函数进行字符串的替换和删除,第一个参数是字符串转换规则表(translation table),第二个参数是要删除的字符串。比如,要          将字符串s中的所有e替换为a,同时要删除所有的o
     aTob = string.maketrans('e','a')
     s = 'hello python'
     print s.translate(aTob, 'o')
 
     输出结果:
     hall pythn
 
     3).假如我们这样使用
     allchars = string.maketrans('', '')
     k = allchars.translate(allchars, 'a')
     allchars表示所有的字符串,而k表示从所有的字符串中去除掉字符a,就是说所有的字符,除了a,因此,我们再调用如下方法时:
 
     s = 'abc'
     print s.translate(allchars, k)
     字面意思是,输出“字符串s中除去任何不是字符a的字符",即,只输出字符a,因此输出结果为:
     a
 
     4).现在,已经不难理解下面这个函数了
     import string
     def translator(frm='', to='', delete='', keep=None):
              if len(to) == 1:
             to = to * len(frm)
              trans = string.maketrans(frm, to)
              if keep is not None:
             allchars = string.maketrans('', '')
             delete = allchars.translate(allchars, keep.translate(allchars, delete))
             def translate(s):
                  return s.translate(trans, delete)
              return translate
     调用:
 
     digits_only = translator(keep=string.digits)
     print digits_only('Chris Perkins : 224-7992')
 
     digits_to_hash = translator(frm=string.digits, to='#')
     print digits_to_hash('Chris Perkins : 224-7992')
     输出结果:
     2247992
     Chris Perkins : ###-####
2.time, strftime和strptime 转换时间字符串
     最常用的time.time()返回的是一个浮点数,单位为秒。但strftime处理的类型是time.struct_time,实际上是一个tuple。strptime和localtime都会返回这个类型
     import time;
     import datetime;
     print time.time()
     print time.localtime()
     print time.strftime("%Y年%m月%d日 %X",time.localtime())
     print time.strptime("2013-05-14","%Y-%m-%d")
     #结果
     #1368502787.23
     #time.struct_time(tm_year=2013, tm_mon=5, tm_mday=14, tm_hour=11, tm_min=39, tm_sec=47, tm_wday=1, tm_yday=134, tm_isdst=0)
     #2013年05月14日 11:39:47
     #time.struct_time(tm_year=2013, tm_mon=5, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=134, tm_isdst=-1) 

 

posted @ 2013-05-14 11:48  七夜小魔军  阅读(282)  评论(0编辑  收藏  举报