Python的str对象没有内置的反向函数。实施此方法的最佳方式是什么?
如果提供一个非常简洁的答案,请详细说明其效率。例如,str对象是否转换为其他对象等。
Python的str对象没有内置的反向函数。实施此方法的最佳方式是什么?
如果提供一个非常简洁的答案,请详细说明其效率。例如,str对象是否转换为其他对象等。
当前回答
1.使用切片表示法
def rev_string(s):
return s[::-1]
2.使用reversed()函数
def rev_string(s):
return ''.join(reversed(s))
3.使用递归
def rev_string(s):
if len(s) == 1:
return s
return s[-1] + rev_string(s[:-1])
其他回答
def reverse(input):
return reduce(lambda x,y : y+x, input)
这里有一个不花哨的:
def reverse(text):
r_text = ''
index = len(text) - 1
while index >= 0:
r_text += text[index] #string canbe concatenated
index -= 1
return r_text
print reverse("hello, world!")
作为一种不同的解决方案(因为面试中会问到):
def reverse_checker(string):
ns = ""
for h in range(1,len(string)+1):
ns += string[-h]
print(ns)
if ns == string:
return True
else:
return False
递归方法:
def reverse(s): return s[0] if len(s)==1 else s[len(s)-1] + reverse(s[0:len(s)-1])
例子:
print(reverse("Hello!")) #!olleH
下面是如何使用for循环反转字符串:
string = "hello,world"
for i in range(-1,-len(string)-1,-1):
print (string[i], end=(" "))