2017-10-18 4 views
1

Soit s être une chaîne de python et n un nombre entier n < len(s). Comment puis-je obtenir les derniers caractères n de s et les inverser en utilisant la notation de tranche? Ma tentative est la suivante:inverse n derniers caractères de chaîne en utilisant la notation des tranches

n = 2 
s = '1234' 
print(s[-n::-1]) # prints 321, was expecting 43 

Justification: s[::-1] intervertit la chaîne, s[-n:] obtient les derniers n personnages, donc je pensais que s[-n::-1] retourneraient les derniers n caractères inversés. Est-il possible de faire cela sur une seule notation de tranche?

Répondre

3

Essayez:

n = 2 
s = '1234' 
print(s[:n-1:-1]) 

EDIT (pour tout n):

print(s[:-n-1:-1]) 
+1

Cela fonctionne avec n = 2 que par hasard. 's [: - n-1: -1]' fonctionne pour tout n. – jasonharper

+0

Oh, oui ... @jasonharper, merci – SatanDmytro

1

Vous pouvez essayer cette

print(s[::-1][:n]) #