反转字符串字符,同时将它们保持在相同位置

时间:2019-02-07 00:15:30

标签: python string

我希望反转一组字符串,同时将它们保持在相同的位置,并且还尝试不要使用切片或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

如何将这个反向的字符串恢复到正确的位置?

4 个答案:

答案 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)

编辑很抱歉,请再次阅读原始文章。