Come invertire una stringa con liste python

0

Domanda

Ho trovato questo pezzo di codice da una domanda correlata inversione stringhe in python, ma per favore qualcuno può interpretare nell'inglese normale? Si prega di notare che io sono ancora nuovo a python e solo imparato come usare i cicli while e funzioni di ieri :/ in modo che davvero non riesco a mettere questo in parole me causa la mia comprensione non è molto c'è ancora.

comunque ecco il codice:

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

Migliore risposta

4

Sicuramente da sapere quello che fa, si può capire il codice. Nel while loop, il index valore inizia dalla fine della stringa e conta fino a 0. In ogni passo, si aggiunge che il carattere (di nuovo, a partire dalla fine) alla fine della lista si sta costruendo. Infine, combina l'elenco in una stringa.

Così, dato 'abcd', la lista viene costruita:

'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

Beh fondamentalmente, ottenere la lunghezza della stringa con il len metodo. Che farà tornare un valore intero che rappresenta quanto tempo che stringa.

Essi quindi utilizzare la lunghezza della stringa in modo efficace e scorrere fino a zero in un while loop. Utilizzando il -= operatore.

Ogni iterazione (il che significa ogni volta tutto il ciclo) si toglie dalla lunghezza fino a quando si raggiunge lo zero.

Quindi, consente di utilizzare hello come un esempio di input e di passare attraverso questo insieme.

reverse_string('hello') è come lo vorresti chiamare il metodo, fatto in print dichiarazione di codice.

Abbiamo quindi immettere la funzione ed eseguire questi passaggi:

  1. Dobbiamo creare un nuovo array vuoto chiamato new_strings.
  2. Troviamo la lunghezza della stringa iniziale hello che ci restituisce 5. Il che significa che ora index è uguale a 5.
  3. Creiamo un ciclo while che continua ad andare fino a index è non più in uso while(index): - un ciclo while come si tratta di un 0 valore falsy e terminerà al raggiungimento di questo. Pertanto, quando index è 0 il ciclo si ferma.
  4. La prima riga di questo ciclo esegue index -= 1 che è la stessa scrittura index = index - 1 così il primo ciclo, attraverso otteniamo index = 5 - 1 e poi ora index è uguale a 4.
  5. Perché Python poi ci permette di accedere al character di una stringa utilizzando string[index] (e perché funziona da 0 -> n) l'esecuzione di hello[4] sarà, infatti, di cogliere il carattere o.
  6. Abbiamo anche aggiungere il carattere dell'array new_strings il che significa che come andiamo attraverso le iterazioni per raggiungere lo zero, dare ad ogni personaggio all'indietro per questa matrice ci dà ['o', 'l', 'l', 'e', 'h']
  7. Poiché l'indice è ora zero lasciamo il ciclo e per eseguire un join operazione di matrice ancora una volta di creare una stringa. Il comando ''.join(new_strings) significa che ci vogliono far parte dell'array che abbiamo avuto in precedenza senza separatore. Se avessimo fatto '#'.join(new_strings) noi, invece, avrebbe ottenuto o#l#l#e#h invece di olleh.

Spero che questa risposta ti dà un po ' di chiarezza.

2021-11-24 04:20:49

ah, questo chiarisce le mie domande bout che l'ultima riga che stavo per chiedere. Grazie per la spiegazione :)
user17415509

Nessuna preoccupazione a tutti. Sono contento di essere di servizio. Tim Roberts è giusto, però, molte di queste cose possono essere comprese attraverso i fondamentali. Suggerisco che ogni volta che si imbattono in codice non hai capito, prova a cercare la documentazione in lingua per il metodo/operatore. Anche se non si capisce all'inizio, di fare l'abitudine a questo e cercare di capire che vi servirà molto bene in movimento in avanti.
Johan Jarvi

Come esempio, str.join() la documentazione che fa parte del Python built-in tipi di documentazione in grado di dimostrare di essere molto utile in seguito, ma posso capire come ti sembra travolgente e confusione, a questo punto, ma è molto buono per ottenere l'abitudine di trovare queste risorse e imparare a interpretarli.
Johan Jarvi
0

Certo, è molto semplice. Si dovrebbe reffer metodi di stringa e la stringa di indicizzazione in python per avere le idee chiare. Permettetemi di spiegare questo in deatial.

stampa(reverse_string('ciao'))//La funzione di stampa è di richiamare un'altra funzione reverse_string e passando argomento"ciao".

def reverse_string(string):// L'argomento "ciao" è memorizzato nella variabile stringa in reverse_string funzione.

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

mentre l'indice: // ciclo while exicute fino a quando la condizione falsi .In questo esempio quando indice =0.nella stringa di indicizzazione iniziare da 0 .Per esempio. stringa[0]=h,stringa[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[indice]) // aggiungi stringa[4] che è o e così via ... di ritorno ".join(new_strings)

2021-11-24 05:28:44

In altre lingue

Questa pagina è in altre lingue

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