s="google"
print("".join(reversed(s))) //elgoog
print(s[::-1]) //elgoog
上面的字符串使用python 3 reversed method 和slicing method 都显示相同的输出,但是在python 编程语言中哪一个是最有效的,为什么?
最佳答案
当你谈到效率时,你应该从哪个角度来说明?内存、运行时、实现等
关于运行时,反向索引肯定更快,因为当您使用 join
加上 reversed
时,您正在调用两个函数,它们都有自己的缺陷(挂起和恢复一个函数的框架等)与简单的索引进行比较。但是如果你想一个一个地循环字符,出于任何目的,并且内存是一个问题(主要是当字符串很大时)你可以使用 reversed
因为它返回一个迭代器对象。
In [2]: s = "example"
In [4]: r = reversed(s)
In [5]: next(r) # e.g. You can access to the characters using `next()`
Out[5]: 'e'
因此结论是您应该根据需要选择方法,实际上这就是为什么在 Python 中有多种方法来完成一项特定任务的原因。
关于python - 哪个更适合 Python 3 中的字符串反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51025882/