我希望反转一组字符串,同时将它们保持在相同的位置,并且还尝试不要使用切片或reverse()。所以如果我有:
string = 'This is the string'
使用反向函数,它将返回:
'sihT si eht gnirts'
我做了一个功能,除了定位外,其他所有功能都正确无误
def Reverse(string):
length = len(string)
emp = ""
for i in range(length-1,-1,-1):
emp += length[i]
return emp
返回;
gnirts a si sihT # correct reverse, wrong positions
如何将这个反向的字符串恢复到正确的位置?
答案 0 :(得分:5)
你想知道吗?
string = 'This is the string'
def Reverse(string):
return ' '.join([s[::-1] for s in string.split(' ')])
print(Reverse(string))
礼物:
sihT si eht gnirts
〜
答案 1 :(得分:2)
def Reverse(string):
length = len(string)
emp = ""
for i in range(length-1,-1,-1):
emp += string[i]
return emp
myString = 'This is the string'
print ' '.join([Reverse(word) for word in myString.split(' ')])
输出
sihT si eht gnirts
答案 2 :(得分:1)
这是使用两个for
循环和str.split()
的另一种方式:
def reverse_pos(string):
a = ''
splitted = string.split()
length = len(splitted)
for i, elm in enumerate(splitted):
k = '' # temporar string that holds the reversed strings
for j in elm:
k = j + k
a += k
# Check to add a space to the reversed string or not
if i < length - 1:
a += ' '
return a
string = 'This is the string'
print(reverse_pos(string))
或更佳:
def reverse_pos(string):
for elm in string.split():
k = '' # temporar string that holds the reversed strings
for j in elm:
k = j + k
yield k
string = 'This is the string'
print(' '.join(reverse_pos(string)))
输出:
sihT si eht gnirts
注意::这里的主要思想是用空格分隔并反转每个高度。这将使单词反向,并将其保留在主字符串中的位置。
答案 3 :(得分:0)
与到目前为止发布的内容没什么不同:
string = "This is the string"
string_reversed = " ".join(["".join(reversed(word)) for word in string.split()])
print(string_reversed)
编辑很抱歉,请再次阅读原始文章。