Cómo revertir la cadena de uso de listas de python

0

Pregunta

He encontrado este fragmento de código a partir de un interrogante acerca de la inversión de las cadenas en python, pero por favor alguien puede interpretar que en la llanura inglés? Por favor, tenga en cuenta que todavía soy nuevo en python y sólo aprendieron a utilizar los bucles while y funciones de ayer :/ por lo que no puedo realmente poner esto en palabras a mí mismo la causa de mi comprensión no está allí todavía.

de todos modos aquí está el código:

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

Mejor respuesta

4

Seguramente por saber qué hace, usted puede encontrar el código. En el while bucle, el index el valor se inicia desde el final de la cadena y de la cuenta a 0. En cada paso, se agrega que el carácter (de nuevo, comenzando desde el final) al final de la lista que está construyendo. Por último, se combina la lista en una cadena.

Así que, 'abcd', la lista se construye:

'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

Bueno, básicamente, el obtener la longitud de la cadena con el len método. Que devolverá un valor entero que representa la forma larga cadena que es.

A continuación, utilizar la longitud de esta cadena y efectivamente recorrer hasta llegar a cero en un while loop. El uso de la -= operador.

En cada iteración (significado en cada vuelta del bucle) le llevará lejos de longitud hasta llegar a cero.

Así que vamos a utilizar hello como un ejemplo de entrada y pasar por esto juntos.

reverse_string('hello') es como que podríamos llamar el método, que se realiza en el print declaración de su código.

A continuación, entrar en la función y realizar estos pasos:

  1. Vamos a crear una nueva matriz vacía llamada new_strings.
  2. Nos encontramos con la longitud de la cadena inicial hello que nos devuelve 5. Lo que significa que ahora index es igual a 5.
  3. Creamos un bucle while, que se mantiene hasta index no es más el uso de while(index): - un bucle while como este se trata de un 0 valor como falsy y terminará al llegar a este. Por lo tanto, cuando index es 0 el bucle se detendrá.
  4. La primera línea de este bucle se realiza index -= 1 que es lo mismo que escribir index = index - 1 así que el primer bucle a través de la conseguimos index = 5 - 1 y entonces ahora index es igual a 4.
  5. Porque Python, a continuación, nos permite acceder a la character de una cadena mediante string[index] (y porque esto funciona de 0 -> n) la realización de hello[4] de hecho, nos dan el carácter o.
  6. También agregar este carácter a la matriz new_strings lo que significa que como vamos a través de las iteraciones para llegar a cero se añade a cada personaje hacia atrás a esta matriz nos da ['o', 'l', 'l', 'e', 'h']
  7. Dado que el índice es ahora cero salimos del bucle y realizar una join operación en la matriz a de nuevo a crear una cadena. El comando ''.join(new_strings) significa que tenemos el deseo de unirse a la matriz de la que hemos tenido previamente sin un separador. Si lo hubieras hecho '#'.join(new_strings) por el contrario nos habría conseguido o#l#l#e#h en lugar de olleh.

Espero que esta respuesta le da algo más de claridad.

2021-11-24 04:20:49

ah esto aclara mis preguntas combate de la última línea que estaba a punto de preguntar. Gracias por la explicación :)
user17415509

No se preocupe en absoluto. Me alegro de que podía ser de servicio. Tim Roberts es el derecho; ya que, muchas de estas cosas pueden ser entendidas por ir a través de los fundamentos. Sugiero que cada vez que te topas con el código que usted no entiende, intente la búsqueda de la documentación del lenguaje para el método/operador. Incluso si usted no entiende al principio, entrar en el hábito de esto y tratando de entender que le servirá muy bien adelante.
Johan Jarvi

Como un ejemplo str.join() de la documentación que forma parte de la Python integrado en los tipos de documentación que puede llegar a ser muy muy útil más adelante, pero puedo entender cómo va a ser abrumador y confuso en este punto, pero es muy bueno para conseguir en el hábito de la búsqueda de estos recursos y aprender a interpretarlos.
Johan Jarvi
0

Claro, es muy simple programa. Usted debe reffer cadena de métodos y cadena de indexación en python para obtener una idea clara. Permítanme explicar esto en deatial.

de impresión(reverse_string('hola'))//La función de impresión es llamar a otra función reverse_string y pasando argumento de"hola".

def reverse_string(string):// El argumento de "hola" se almacena en la variable cadena en reverse_string función.

**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.

mientras que el índice: // bucle while exicute hasta que la condición de obtener falsos .En este ejemplo cuando index =0.en cadena de la indexación de empezar desde 0 .Para ejemplo. cadena[0]=h,cadena[1]=e,cadena[2]=l,cadena[3]=l,cadena[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[índice]) // añadir string[4] que es o y así sucesivamente ... de retorno ".join(new_strings)

2021-11-24 05:28:44

En otros idiomas

Esta página está en otros idiomas

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