Python recipe(3):Reverse String
代码先行:
![div css xhtml xml Example Source Code](https://images.cnblogs.com/cnblogs_com/suyuan/quote.gif)
''' 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返回值