自己尝试写了一点,并参照网上的前辈代码,总结了几种常用且方便的方法,如下:
#字符串的反转
#最简单的是:步长为-1, 即字符串的翻转(常用);
def reverse1 (s):
rt = ''
for i in range(len(s)-1, -1, -1):
rt += s[i]
return rt
def reverse2 (s):
li = list(s)
#列表的反转
li.reverse()
#print li
return "".join(li)
def reverse3 (s):
return s[::-1]
def reverse4 (s):
#a=reversed(s)
#print a
#b="".join(a)
return "".join(reversed(s))
from functools import reduce
def reverse5 (s):
return reduce(lambda x,y:y+x,s)
#使用for循环, 从右至左输出
def reverse6(string):
return ''.join(string[i] for i in range(len(string)-1, -1, -1))
#交换前后字母的位置
def reverse7(string):
t = list(string)
l = len(t)
for i,j in zip(range(l-1, 0, -1), range(l//2)):
t[i], t[j] = t[j], t[i]
return "".join(t)
#双端队列, 使用extendleft()函数
from collections import deque
def reverse8(string):
d = deque()
d.extendleft(string)
return ''.join(d)
if __name__ == '__main__':
str1=str2=str3=str4=str5=str6=str7=str8 = 'hello 123 congcong\'s python world'
print reverse1(str1)
print reverse2(str2)
print reverse3(str3)
print reverse4(str4)
print reverse5(str5)
print reverse6(str6)
print reverse7(str7)
print reverse8(str8)
结果:
总结:学习了zip函数
哈哈 ~~加油!