Python recipe(3):Reverse String
代码先行:Example Source Code
'''
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返回值
页:
[1]