Python 实现字符串反转的9种方法
在做leetcode的试题中,做到反转整数,就涉及到字符串反转,为了尽可能可以写出更多的方法,于是写下这篇文章 样例:如 a='123456789'?反转成 a='987654321' 第一种方法:使用字符串切片 >>>?a='123456789'? >>>?a?=?a[::-1] '987654321' 第二种方法:使用reversed() 可读行好,但速度较慢
>>>?''.join(reversed('123456789')) '987654321' 封装使用 def?reversed_string(a_string): ????return?a_string[::-1] >>>?reversed_string('123456789') '123456789' 注意:
python字符串相关基础知识:
#?下标通过在大括号中包含冒号来创建切片: string[start:stop:step] #?要在大括号外创建切片,您需要创建切片对 slice_obj?=?slice(start,?stop,?step) string[slice_obj] 第三种方法:循环从字符串提取数据,然后进行字符串拼接(慢) def?reverse_a_string_slowly(a_string): ????new_string?=?'' ????index?=?len(a_string) ????while?index: ????????index?-=?1????????????????????#?index?=?index?-?1 ????????new_string?+=?a_string[index]?#?new_string?=?new_string?+?character ????return?new_string 第四种方法:循环从字符串提取数据,写入到一个空列表中,然后使用join进行字符串拼接(慢) def?reverse_a_string_more_slowly(a_string): ????new_strings?=?[] ????index?=?len(a_string) ????while?index: ????????index?-=?1??????????????????????? ????????new_strings.append(a_string[index]) ????return?''.join(new_strings) 第五种方法:使用字符串拼接(慢) def?string_reverse(a_string): ????n?=?len(a_string) ????x="" ????for?i?in?range(n-1,-1,-1): ????????x?+=?test[i] ????return?x 第六种方法:使用reduce reduce(lambda?x,y?:?y+x,?a_string) 第七种方法:使用递归(慢) def?rev_string(s):? ????if?len(s)?==?1: ????????return?s ????return?s[-1]?+?rev_string(s[:-1]) 第八种方法:使用list()?和reverser()配合 a_string='123456789' def?rev_string(a_string): ????l=list(a) ????l.reverse() ????return?''.join(l) 第九种方法:使用栈 def?rev_string(a_string): ????l?=?list(a_string)?#模拟全部入栈 ????new_string?=?"" ????while?len(l)>0: ????????new_string?+=?l.pop()?#模拟出栈 ????return?new_string 参考文章:Reverse a string in Python (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |