如何在Python中反转单词[重复]
Posted
技术标签:
【中文标题】如何在Python中反转单词[重复]【英文标题】:How to reverse words in Python [duplicate] 【发布时间】:2013-09-23 04:33:17 【问题描述】:如何在 Python 中反转单词?
例如:
SomeArray=('Python is the best programming language')
i=''
for x in SomeArray:
#i dont know how to do it
print(i)
结果必须是:
egaugnal gnimmargorp tseb eht si nohtyP
请帮忙。并解释一下。
PS:
我不能使用[::-1]
。我知道这件事。我必须在面试中这样做,只使用循环:)
【问题讨论】:
如果你通过假装你知道绝对的基本知识而实际上你不知道的方式比面试官更聪明,如果你得到这份工作并且必须做真正的工作会发生什么? 哈哈,我没说:)这就是我问你的原因:) @VadimKovrizhkin Reverse a string in python without usingreversed
or [::-1]
.
我是这样做的 [::-1] 而这个答案不喜欢他们
所以基本上,您是在问如何用高级语言实现低级编程结构。我记得必须在 C++ 类中用指针和所有东西做这种事情。这种练习的目的是了解这些结构是如何工作的,以及各种选择有什么样的限制,无论是空间还是时间。
【参考方案1】:
>>> s = 'Python is the best programming language'
>>> s[::-1]
'egaugnal gnimmargorp tseb eht si nohtyP'
更新:
如果需要循环执行,可以使用 range 倒退:
>>> result = ""
>>> for i in xrange(len(s)-1, -1, -1):
... result += s[i]
...
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
或者,reversed()
:
>>> result = ""
>>> for i in reversed(s):
... result += i
...
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
【讨论】:
不,我不知道这个 [::-1] 但在面试时,我必须在没有 [::-1] 的情况下这样做,只需循环。 你想要一个反向循环逻辑吗? @VadimKovrizhkin 检查更新的答案,这是你想要的吗? 没有xrange你能做到吗? @VadimKovrizhkin 为什么?这是或要求还是对您不起作用?那么,可能你在 python 3 上 - 使用range()
而不是 xrange()
。【参考方案2】:
使用切片符号:
>>> string = "Hello world."
>>> reversed_string = string[::-1]
>>> print reversed_string
.dlrow olleH
您可以阅读更多关于 slice notatoin here.
【讨论】:
【参考方案3】:Python 中的字符串是一个字符数组,因此您只需向后遍历数组(字符串)。您可以像这样轻松地做到这一点:
"Python is the best programming language"[::-1]
这将返回"egaugnal gnimmargorp tseb eht si nohtyP"
。
[::-1]
从头到尾遍历一个数组,一次一个字符。
【讨论】:
以上是关于如何在Python中反转单词[重复]的主要内容,如果未能解决你的问题,请参考以下文章