Cum să reverse string folosind liste python

0

Problema

Am găsit această bucată de cod de la o intrebare legate despre inversarea siruri de caractere în python, dar poate cineva vă rugăm să-l interpreteze în limba engleză? Vă rugăm să rețineți că eu sunt încă la noi python și doar învățat cum să utilizați bucle de timp și funcții de ieri :/ deci, eu nu pot pune acest lucru în cuvinte mine că înțelegerea mea nu este destul de acolo încă.

oricum aici este codul:

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

Cel mai bun răspuns

4

Sigur de a ști ce face, vă puteți da seama de acest cod. În while bucla, index valoarea începe de la sfârșitul șirului și numără până la 0. În fiecare pas, se adaugă faptul că personajul (din nou, începând de la sfârșitul) la sfârșitul listei este construirea. În final, se combină lista într-un șir.

Deci, având în vedere "abcd", lista s-a 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

Ei bine, de fapt, a obține lungimea șirului cu len metoda. Care va returna o valoare de tip întreg care reprezintă cât de mult timp că șirul este.

Apoi, ei folosesc lungimea acestui șir și eficient repeta la zero într-un while buclă. Folosind -= operator.

Fiecare iterație (adică de fiecare dată în jurul buclei) se va lua de la masă până când se ajunge la zero.

Deci, vă permite să utilizați hello ca un exemplu de intrare și du-te prin asta împreună.

reverse_string('hello') cum ne-ar apela metoda, face în print declarație de cod.

Apoi vom introduce funcția și de a efectua acești pași:

  1. Vom crea un nou array gol numit new_strings.
  2. Vom găsi lungimea inițială string hello ceea ce ne întoarce la 5. În sensul că acum index este egal cu 5.
  3. Vom crea o buclă în timp ce continuă să meargă până index nu mai folosesc while(index): - o buclă în timp ce tratează un astfel de prognoze 0 valoarea falsy și se va termina la atingerea asta. Prin urmare, atunci când index este 0 bucla se va opri.
  4. Prima linie din această buclă efectuează index -= 1 care este la fel ca scrierea index = index - 1 deci prima bucla prin ajungem index = 5 - 1 și apoi acum index este egal cu 4.
  5. Deoarece Python apoi ne permite să accesați character de un șir de caractere folosind string[index] (și pentru că acest lucru funcționează de la 0 -> n) efectuarea hello[4] vor, de fapt, dă-ne caracter o.
  6. Am adăuga, de asemenea, acest personaj a matrice new_strings în sensul că așa cum am trece prin iterații pentru a ajunge la zero se va adăuga fiecare personaj înapoi de la această matrice oferindu-ne ['o', 'l', 'l', 'e', 'h']
  7. Când indicele este zero acum vom pleca la bucla și de a efectua o join funcționarea în serie a din nou a crea un șir de caractere. Comanda ''.join(new_strings) înseamnă că ne-am dori să se alăture serie am avut anterior, fără un separator. Dacă am fi făcut '#'.join(new_strings) avem în schimb ar fi ajuns o#l#l#e#h în loc de olleh.

Sper că acest răspuns vă oferă claritate.

2021-11-24 04:20:49

ah, asta clarifică întrebările mele despre asta ultima linie pe care voiam să o întreb. Multumesc pentru explicatie :)
user17415509

Nu vă faceți griji, la toate. Mă bucur că am putut fi de folos. Tim Roberts este, totuși, multe dintre aceste lucruri pot fi înțelese de a merge prin fundamentele. Sugerez că ori de câte ori ai intrat pe cod nu înțelegi, să încerce căutare limba documentația pentru metoda/operator. Chiar dacă nu înțelegeți de la început, intra in obiceiul de acest lucru și încearcă să-l înțeleagă va servi foarte bine în mișcare înainte.
Johan Jarvi

Ca un exemplu str.join() documentația care face parte din Python built-in tipuri de documentație poate dovedi a fi foarte utile mai târziu, dar nu pot înțelege cum se va părea copleșitoare și confuz în acest moment, dar este foarte bun pentru a obține în obiceiul de a găsi aceste resurse și de a învăța cum să le interpreteze.
Johan Jarvi
0

Sigur, Acesta este un program foarte simplu. Ar trebui să te referi șir de metode și șir de indexare în python pentru a obține o idee clară. Permiteți-mi să explic acest lucru în deatial.

print(reverse_string ("hello"))//funcția De imprimare este de asteptare o altă funcție reverse_string și trece argument"bună ziua".

def reverse_string(string):// argumentul "hello" este stocat în variabila șir în reverse_string funcție.

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

în timp ce indicele: // buclă în timp ce exicute până când starea false .În acest de exemplu, atunci când index =0.în șir indexarea începe de la 0 .Pentru exemplu. 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]) // adăugare string[4], care este o și așa mai departe ... întoarcere ".alăturați-vă(new_strings)

2021-11-24 05:28:44

În alte limbi

Această pagină este în alte limbi

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