z7369 发表于 2015-4-28 07:40:16

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]
查看完整版本: Python recipe(3):Reverse String