Python recipe(3):Reverse String

代码先行:

div css xhtml xml Example Source Code Example Source Code [http://www.cnblogs.com/tomsheep/]
'''
Created on 2010-5-20

@author: lk
'''
def reverse_chars(str):
    reverse = list(str)
    reverse.reverse()
    return ''.join(reverse)

def reverse_words(str):
    reverse = str.split()
    reverse.reverse()
    return ' '.join(reverse)

def reverse_words2(str):
    import re
    reverse = re.split(r'\s+', str)
    reverse.reverse()
    return ' '.join(reverse)

def reverse(alist):
    """
    a helper function to reverse a list
    """
    tmp = alist[:]
    tmp.reverse()
    return tmp

def reverse_chars_one(str):return ''.join(reverse(list(str)))
                                          
def reverse_words_one(str):return ' '.join(reverse(str.split()))

if __name__ == '__main__':
    print reverse_chars('Hello')
    print reverse_words('Hello World')
    print reverse_words2('Liu Kang')
    print reverse_chars_one('tomsheep')
    print reverse_words_one('Fudan University')

以上代码来自Python Cookbook 3-10

概述:

    无需多说,反转字符串。BTW,我很纳闷为什么这样的操作不是string内建的……

代码说明:

1. list的reverse函数:反转一个list

2. string的join和spilt函数分别“从list串联出一个字符串(以该string对象为分隔符)”和“把字符串分割为list”,若spilt参数为空,默认以空格、tab、newline等空白符作为分隔符

3. re模块 为正则表达式模块。 re.split(r’\s+’,str)等价于str.split()

4. list的reverse函数为in-place函数,返回值为None,所以要让我们的reverse操作在一行代码中完成,加了一个helper函数reverse,具有非None返回值

posted on 2010-05-20 22:40  tomsheep  阅读(2101)  评论(0编辑  收藏  举报

导航