How to reverse words in Python
如何在python中反转单词?
例如:
1 2 3 4 5 6
| SomeArray=('Python is the best programming language')
i=''
for x in SomeArray:
#i dont know how to do it
print(i) |
结果必须是:
1
| egaugnal gnimmargorp tseb eht si nohtyP |
请帮忙。并解释。PS:我不能用[::-1]。我知道这件事。我必须在面试中这样做,只使用循环:)
- 如果你假装自己知道一些基本的事情,而实际上你不知道,那么如果你得到了这份工作,并且必须做真正的工作,会发生什么呢?
- 哈哈,我没说:)所以我问你:)
- @vadimkovrizhkin在不使用reversed或[::-1]的情况下反转python中的字符串。
- 我做得像[:-1]这个答案不喜欢他们
- 所以,基本上,你是在问如何用高级语言实现一个低级编程结构。我记得必须在C++类中使用指针和所有这些东西。这样一个练习的目的是了解这些构造是如何工作的,从而了解各种选项在空间或时间方面有哪些限制。
- 从链接到的重复问题@hcwhsa,stackoverflow.com/a/18686882/1151229是我最喜欢的答案。它使用递归,因此管理起来不会太长。如果您坚持使用迭代,最好的答案是stackoverflow.com/a/18686861/1151229,由询问者自己提供。
- 但老实说,如果面试官要我说明这种低层次的迭代知识,我会给他们写一个Java程序,一个更适合这个任务的语言。
1 2 3
| >>> s = 'Python is the best programming language'
>>> s[::-1]
'egaugnal gnimmargorp tseb eht si nohtyP' |
UPD:
如果需要在循环中执行此操作,则可以使用"范围"来向后执行:
1 2 3 4 5 6
| >>> result =""
>>> for i in xrange(len(s)-1, -1, -1):
... result += s[i]
...
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP' |
或者,reversed():
1 2 3 4 5 6
| >>> result =""
>>> for i in reversed(s):
... result += i
...
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP' |
- 不,我不知道这个[::-1]但是在面试时,我必须在没有[::-1]的情况下做这个。
- 您想要一个反向循环逻辑吗?
- @Vadimkovrizhkin检查更新的答案,这是你想要的吗?
- 没有xrange你能做到吗?
- @瓦迪姆科夫里奇金为什么?这是要求还是不适合你?那么,您可能在python3上使用range(),而不是xrange()。
- 这是面试的任务。我必须在没有语言能力的情况下完成(反向、范围、[::-1]等等)
- 例如,如果必须在数组中找到最大元素,则必须在不使用(max)的情况下执行该操作:循环:array=([1,23,4,123,4])here=0 for x in array:if here
- @Vadimkovrizhkin嘿,你真的需要颠倒一个字符串或单词的顺序吗?请参阅stackoverflow.com/questions/1009160/…,stateofhouston.com/2011/02/23/…。
- array=('python is the best programming language')here='a=1 for x in array:here+=array[len(array)-a]a+=1 print(here)
使用切片表示法:
1 2 3 4
| >>> string ="Hello world."
>>> reversed_string = string[::-1]
>>> print reversed_string
.dlrow olleH |
你可以在这里了解更多关于切片的信息。
python中的字符串是字符数组,所以您只需向后遍历数组(字符串)。您可以很容易地这样做:
1
| "Python is the best programming language"[::-1] |
这将返回"egaugnal gnimmargorp tseb eht si nohtyP"。
[::-1]从头到尾遍历一个数组,一次遍历一个字符。