48 votes

Liste inversée en python

J'essaie d'inverser une chaîne et d'utiliser le code ci-dessous, mais la valeur de la liste inverse résultante est Aucune.

Toutes les entrées

Code

 str_a = 'This is stirng'
rev_word = str_a.split()
rev_word = rev_word.reverse()
rev_word = ''.join(rev_word)
 

Erreur: Typeerror

122voto

Sean Johnson Points 4222

Ceci est ma façon préférée personnelle d'inverser une chaîne:

 stra="This is a string"
revword = stra[::-1]

print(revword) #"gnirts a si sihT
 

ou, si vous souhaitez inverser l'ordre des mots:

 revword = " ".join(stra.split()[::-1])

print(revword) #"string a is This"
 

:)

51voto

Eric Points 28561

.reverse() retours None. Par conséquent, vous ne devriez pas être à l'affecter à une variable.

Utilisez ceci à la place:

stra = 'This is stirng'
revword = stra.split()
revword.reverse()
revword=''.join(revword)

J'ai exécuter le code sur IDEOne pour vous afin que vous puissiez voir le résultat. (Notez également que la sortie est stirngisThis; vous pouvez utiliser ' '.join(revword), avec un espace, à la place.)

Notez également que la méthode que vous avez fournis uniquement inverse les mots, pas le texte. @ron.rothman a fourni un lien qui n'détail comment inverser une chaîne de caractères dans son intégralité.

7voto

Paddy3118 Points 1770

Divers renversements sur une chaîne:

 instring = 'This is a string'
reversedstring = instring[::-1]
print reversedstring        # gnirts a si sihT
wordsreversed = ' '.join(word[::-1] for word in instring.split())
print wordsreversed         # sihT si a gnirts
revwordorder = ' '.join(word for word in instring.split()[::-1])
print revwordorder          # string a is This
revwordandorder = ' '.join(word[::-1] for word in instring.split()[::-1])
print revwordandorder       # gnirts a si sihT
 

6voto

dm03514 Points 20748

Pour référence future, lorsqu'un objet a une méthode telle que [].reverse() il effectue généralement cette action sur l'objet (la liste est triée et ne renvoie rien, Aucune) contrairement aux fonctions intégrées telles que sorted qui effectue une action sur un objet et retourne une valeur (c'est-à-dire la liste triée)

3voto

Andreas Jung Points 1
>>> s = 'this is a string'
>>> s[::-1]
'gnirts a si siht'
>>> ''.join(reversed(s))
'gnirts a si siht'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X