Ako zvrátiť reťazec pomocou zoznamov python

0

Otázka

Našiel som tento kus kódu z súvisiacu otázku o zvrátenie reťazce v jazyku python, ale môže niekto prosím, interpretovať ho v zrozumiteľnej angličtine? Vezmite prosím na vedomie, že som stále nový python a len naučil sa používať počas slučky a funkcie včera :/ takže som naozaj nemôžem dať do slov sám príčinou môjho chápania nie je celkom tam ešte.

tak tu je kód:

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

Najlepšiu odpoveď

4

Určite by vedel, čo robí, môžete prísť na kód. V while slučky, na index hodnota sa začína od konca reťazca a počíta, až na 0. V každom kroku, to dodáva, že znak (opäť začína od konca) na konci zoznamu je budova. Nakoniec, spája zoznam do reťazca.

Takže, vzhľadom 'abcd', zoznam dostane postavený:

'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

No v podstate, get dĺžka reťazca s len metódy. Čo sa vráti celočíselnú hodnotu zastupujú, ako dlho, že reťazec je.

Oni potom použite dĺžka tohto reťazca a efektívne opakovať dole na nulu v while slučky. Pomocou -= prevádzkovateľ.

Každá iterácia (čo znamená, že zakaždým, keď okolo slučky) to bude trvať od dĺžky až kým nedosiahne nulu.

Takže umožňuje použiť hello ako príklad vstupu a prejsť sa, že to spolu.

reverse_string('hello') je to, ako by sme zavolať metódu, vykonáva v print vyhlásenie o váš kód.

Potom sme zadajte funkciu a vykonajte tieto kroky:

  1. Sme vytvoriť nové prázdne pole s názvom new_strings.
  2. Zistili sme, dĺžka počiatočnej reťazec hello čo nás vracia 5. Čo znamená, že teraz index je rovná 5.
  3. Vytvárame počas slučky, ktorá udržuje v chode, až kým index nie je viac, pomocou while(index): - chvíľu slučky ako to ošetruje 0 hodnoty ako falsy a bude vypovedať na dosiahnutie tohto. Preto, keď index je 0 slučka sa bude zastaviť.
  4. Prvý riadok táto slučka vykonáva index -= 1 čo je to isté, ako písanie index = index - 1 tak veľmi prvej slučky cez dostaneme index = 5 - 1 a potom teraz index rovná 4.
  5. Pretože Python potom nám umožňuje prístup k character reťazca pomocou string[index] (a pretože to funguje od 0 -> n) vykonáva hello[4] v skutočnosti nám dať znak o.
  6. Sme tiež pridať tento znak na pole new_strings čo znamená, že ako sme sa ísť cez iterácie dosiahnuť nulové to bude pridať každý znak dozadu toto pole dáva nám ['o', 'l', 'l', 'e', 'h']
  7. Keďže index je teraz nulová necháme slučky a vykonať join operácie na poli opäť vytvoriť reťazec. Príkaz ''.join(new_strings) znamená, že chceme vstúpiť do poľa sme predtým bez oddeľovača. Ak sme museli urobiť '#'.join(new_strings) sme namiesto toho by sa dostali o#l#l#e#h namiesto olleh.

Dúfam, že táto odpoveď vám nejaký jasnosť.

2021-11-24 04:20:49

ah, to objasňuje moje otázky záchvat, že posledný riadok, ktorý som mal asi sa opýtať. Vďaka za vysvetlenie :)
user17415509

Bez obáv, na všetko. Som rád, že som mohol byť služby. Tim Roberts je správne, aj keď, mnoho z týchto vecí, môže byť pochopené prechádza základy. Domnievam sa, že vždy keď narazí na kód nerozumiete, skúste vyhľadávanie jazyk dokumentácie pre metódu/prevádzkovateľ. Aj keď nerozumiete, je v začiatku, dostať sa do zvyku a snaží sa pochopiť bude slúžiť veľmi dobre vpred.
Johan Jarvi

Ako príklad str.pripojiť() dokumentáciu, ktorá je súčasťou Python vstavaných typov dokumentácie môže ukázať ako veľmi užitočné neskôr, ale nemôžem pochopiť, ako sa to bude zdať ohromujúci a mätúce, na tomto mieste, ale to je veľmi dobré dostať sa do zvyku zistení týchto zdrojov a vzdelávania, ako interpretovať ich.
Johan Jarvi
0

Iste, je veľmi jednoduchý program. Mali by ste reffer string metódy a string indexovanie v jazyku python získať jasnú predstavu. Dovoľte mi vysvetliť to v deatial.

tlač(reverse_string ("hello"))//funkciu "tlačiť", volá inú funkciu reverse_string a absolvovanie argument"dobrý deň".

def reverse_string(string):// argument "dobrý deň" je uložená v premennej reťazec v reverse_string funkciu.

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

zatiaľ čo index: // zatiaľ čo slučky exicute do stavu dostať nepravdivé .V tejto napríklad, keď index =0.v reťazec indexovanie začať od 0 .Pre príklad. 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]) // append string[4], ktorý je o a tak ďalej ... vrátiť sa ".pripojiť(new_strings)

2021-11-24 05:28:44

V iných jazykoch

Táto stránka je v iných jazykoch

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