Je cherche à inverser un ensemble de chaînes tout en les gardant dans les mêmes positions et en essayant également de ne pas utiliser le découpage ou l'inversion () . Donc, si j'avais:
gnirts a si sihT # correct reverse, wrong positions
En utilisant la fonction inverse, cela renverrait:
def Reverse(string):
length = len(string)
emp = ""
for i in range(length-1,-1,-1):
emp += length[i]
return emp
J'ai créé une fonction qui fait tout correctement sauf pour positionnement:
'sihT si eht gnirts'
qui renvoie;
string = 'This is the string'
Comment puis-je remettre cette chaîne inversée aux bonnes positions? p>
4 Réponses :
Je suppose que vous voulez:
sihT si eht gnirts
Donne:
string = 'This is the string'
def Reverse(string):
return ' '.join([s[::-1] for s in string.split(' ')])
print(Reverse(string))
~
J'essaye de ne pas utiliser le tranchage ou l'inverse
Merci pour la réponse, dans 99% des cas, c'est une réponse plus qu'acceptable
sihT si eht gnirts
Voici une autre façon d'utiliser deux boucles for et str.split():
sihT si eht gnirts
Ou mieux:
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)))
Output:
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))
NB: L'idée principale ici est scindée par des espaces et inverser chaque élmement. Cela inversera et conservera les mots à leur place dans la chaîne principale.
Rien de très différent de ce qui a été publié jusqu'à présent:
string = "This is the string" string_reversed = " ".join(["".join(reversed(word)) for word in string.split()]) print(string_reversed)
modifier Il suffit de relire le message original, désolé.
Juste une suggestion, pour être pythonique, vous ne devez pas mettre en majuscule les noms de vos fonctions. La convention consiste à mettre en majuscule les noms de classe et les noms de fonctions minuscules / snake_case.