原文作者:Alex Martelli 中文翻译:Tony(digitalsatori) 问题描述 如何按单词或字母反向排列一个字符串 解决方法 字符串是不可改变的(immutable),所以要反向排列就需要创建一个新的字符串。反向排列最简单的方法就是使用“步进”(step)为-1的扩展切片(extended slice)操作: revchars = astring[::-1] 如果要按单词来反向排列字符串,就要先创建一个包含所有单词的列表,反向排列该列表,再用空格将列表中的单词重新连接为字符串: revwords = astring.split() # 字符串 -> 单词列表 revwords.reverse() # 反向排列单词列表 revwords = ' '.join(revwords) # 单词列表 -> 字符串 或者,也可以用一行紧凑代码来表示: revwords = ' '.join(astring.split()[::-1] 如果要按单词反转排列字符串,同时又要保持单词间的空格不变,可以使用正则表达式: import re revwords = re.split(r'(\s+)', astring) #字符串转换为列表,包含空格 revwords.reverse() #反转列表 revwords = ''.join(revwords) #列表 -> 字符串 请注意这里的连接符必须是空字符串,因为原有的空格分隔符保留在revwords列表中。同样,我们可以使用一行紧凑代码: revwords = ''.join(re.split(r'(\s+)', [...]













