Comment inverser chaîne à l'aide de listes de python

0

La question

J'ai trouvé ce morceau de code à partir d'une question connexe à propos de l'inversion de chaînes de caractères en python, mais quelqu'un peut-il svp interpréter en anglais? Veuillez noter que je suis encore nouveau pour python et seulement appris à utiliser tandis que les boucles et les fonctions hier :/ donc je ne peux pas vraiment mettre cela en mots me cause ma compréhension n'est pas tout à fait encore là.

de toute façon voici le code:

def reverse_string(string):
    new_strings = [] 
    index = len(string) 
    while index:  
        index -= 1                       
        new_strings.append(string[index]) 
    return ''.join(new_strings) 

print(reverse_string('hello'))
list python string
2021-11-24 04:07:22
3

La meilleure réponse

4

Sûrement en sachant ce qu'il fait, vous pouvez trouver le code. Dans le while boucle, l' index la valeur commence à partir de la fin de la chaîne et le compte à rebours à 0. Dans chaque étape, il ajoute que le caractère (encore une fois, en partant de la fin) à la fin de la liste il est la construction. Enfin, il combine la liste dans une chaîne.

Donc, compte tenu de 'abcd', la liste se construit:

'abcd'  #3 -> ['d']
'abcd'  #2 -> ['d','c']
'abcd'  #1 -> ['d','c','b']
'abcd'  #0 -> ['d','c','b','a']
2021-11-24 04:10:52
1

Eh bien en fait, le obtenir la longueur de la chaîne avec le len la méthode. Qui vous renvoie une valeur entière qui représente combien de temps de cette chaîne.

Ils utilisent ensuite la longueur de cette chaîne et efficacement itérer jusqu'à zéro, dans un while de la boucle. À l'aide de la -= de l'opérateur.

Chaque itération (ce qui signifie que chaque fois autour de la boucle), il mettra à l'écart de la longueur jusqu'à ce qu'il atteigne zéro.

Donc permet de l'utiliser hello comme un exemple d'entrée et de passer par cet ensemble.

reverse_string('hello') est de savoir comment nous pourrions appeler la méthode, dans le print déclaration de votre code.

Nous entrons ensuite dans la fonction et d'effectuer ces étapes:

  1. Nous allons créer un nouveau tableau vide appelé new_strings.
  2. Nous trouver la longueur de la chaîne initiale hello ce qui nous renvoie 5. Ce qui signifie que maintenant index est égal à 5.
  3. Nous créons une boucle while qui continue jusqu'à ce index n'est pas plus à l'aide de while(index): - une boucle while comme cette traite un 0 valeur falsy et prendront fin lors de l'atteindre. Par conséquent, lorsque index est 0 la boucle s'arrête.
  4. La première ligne de cette boucle effectue index -= 1 qui est la même que l'écriture de index = index - 1 de sorte que la première boucle, nous recevrons index = 5 - 1 et puis maintenant index est égal à 4.
  5. Parce que Python ensuite nous permet d'accéder à la character d'une chaîne à l'aide de string[index] (et parce que cela fonctionne de 0 -> n) de la scène hello[4] va, en fait, de nous donner le caractère o.
  6. Nous avons également ajouter ce caractère à la matrice new_strings ce qui signifie que pendant que nous traversons la itérations pour arriver à zéro, il ajoutera de chaque personnage en arrière de ce tableau nous donner ['o', 'l', 'l', 'e', 'h']
  7. Depuis l'index est maintenant à zéro nous sortir de la boucle et d'effectuer une join opération sur le tableau à nouveau créer une chaîne de caractères. La commande ''.join(new_strings) signifie que nous souhaitons rejoindre le tableau que nous avons déjà eu sans séparateur. Si nous l'avions fait '#'.join(new_strings) nous avons plutôt aurait obtenu o#l#l#e#h au lieu de olleh.

J'espère que cette réponse vous donne un peu de clarté.

2021-11-24 04:20:49

ah ce précise à mes questions combat que la dernière ligne qui j'allais te le demander. Merci pour l'explication :)
user17415509

Pas de soucis du tout. Je suis content d'avoir pu rendre service. Tim Roberts est ce que le droit; beaucoup de ces choses peuvent être compris qu'en passant par les fondamentaux. Je suggère que chaque fois que vous tombez sur le code que vous ne comprenez pas, essayez la recherche de la documentation sur le langage de la méthode/de l'opérateur. Même si vous ne comprenez pas dans le début, à entrer dans l'habitude de cela et d'essayer de comprendre, il vous servira très bien aller de l'avant.
Johan Jarvi

Comme un exemple str.join() de la documentation qui fait partie de l'Python intégré dans les types de documents peuvent s'avérer être très très utile plus tard, mais je peux comprendre comment il va sembler écrasante et source de confusion à ce point, mais il est très bon de prendre l'habitude de trouver ces ressources, et d'apprendre à les interpréter.
Johan Jarvi
0

Bien sûr, Il est très simple de programme. Vous devriez reffer méthodes string et string indexation en python pour obtenir une idée claire. Laissez-moi vous expliquer ce dans deatial.

print(reverse_string('bonjour'))//La fonction d'impression est l'appel d'une autre fonction reverse_string et en passant l'argument de"bonjour".

def reverse_string(string):// L'argument "bonjour" est stockée dans la variable chaîne en reverse_string fonction.

**new_strings = []** // created a new empty list
**index = len(string)** // len function returns the length of the argument 
                           passed to the function. len("hello")=5 and assigned 
                           to index. index=5.

alors que l'indice: // boucle while exicute jusqu'à ce que la condition d'obtenir des faux .Dans ce exemple lors de l'index =0.dans la chaîne de l'indexation de repartir de 0 .Pour exemple. string[0]=h,string[1]=e,string[2]=l,string[3]=l,string[4]=o.

    **index -= 1**  //Note the last letter 'o' is in string[4] and the len 
                      function returned 5 so we need to decrement index variable 
                      to 4 so that it will pointing to string[4]=o                     
  

new_strings.append(string[index]) // ajout de la chaîne[4], qui est o et ainsi de suite ... de retour ".join(new_strings)

2021-11-24 05:28:44

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................