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