Obrátenie zoznamu alebo poľa je bežnou úlohou programovania. Existuje mnoho prípadov, keď možno budete musieť prezentovať údaje v opačnom poradí, napríklad pri triedení zoznamu.
Ako môžete zvrátiť zoznam alebo pole pomocou Pythonu? V tomto článku sa dozviete rôzne prístupy.
Vytvorte kópiu pomocou slučky for
Zatiaľ čo Python je cyklus for je podrobnejší, v niektorých prípadoch môže byť užitočný. Napríklad poskytuje väčšiu flexibilitu pri vykonávaní komplexnej logiky v niektorých bodoch spätnej operácie.
Pri použití odsadeného pre cykle, bežným prístupom je iterovať pôvodný zoznam v opačnom poradí. Počnúc posledným prvkom, každá iterácia potom pripojí predchádzajúci prvok k novému zoznamu.
Ako príklad uvádzame zoznam celých čísel od jednej do deviatich, tu je návod, ako obrátiť pole pomocou odsadeného pre slučka:
jazyky = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Vytvorte prázdny zoznam, ktorý bude obsahovať obrátené pole:
obrátený_zoznam = []# Odčítajte jeden od dĺžky pôvodného poľa, aby ste začali od posledného indexu:
redukcia = len (jazyky)-1# Obráťte zoznam vo vnútri cyklu for:
pre ja v jazykoch:
reversed_list.append (jazyky[reduktor]) # Pridajte výsledok do prázdneho zoznamu
redukcia -=1 # Znížte index o jeden pri každej iterácii pomocou reduktora
vytlačiť (obrátený_zoznam)
Výkon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Obrátiť zoznam alebo pole pomocou porozumenia zoznamu
A porozumenie zoznamu vytvára kratší kód. A nie je potrebná žiadna dočasná premenná, pretože porozumenie zoznamu funguje na mieste v zozname.
Ak chcete vykonať predchádzajúcu operáciu pomocou pochopenia zoznamu:
redukcia = len (jazyky)
# Znížte index v rámci funkcie rozsahu pomocou cyklu for v porozumení zoznamu
Obrátený_zoznam = [languages[reduktor] pre redukciu v rozsahu (reduktor -1,-1,-1)]
vytlačiť (Obrátený_zoznam)
Výkon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Použite operátor Slice
Operátor segmentu zoznamu je celkom jednoduchý, aj keď má určité obmedzenia. Napríklad možno nebudete môcť prispôsobiť výstup ako pri použití a pre slučka.
Tu je postup, ako obrátiť zoznam pomocou operátora výrezu:
jazyky = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = jazyky[::-1]
vytlačiť (rev_list)
Výkon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
The [::-1] syntax je šikovná skratka, ktorej výsledkom je obrátený zoznam. V skutočnosti to znamená „skopírovať každý prvok zoznamu, počnúc od konca a počítať späť“ – t. j. „obrátiť to“!
Použite opačnú metódu poľa
Toto je ďalšia metóda, ktorá funguje na mieste: upravuje pôvodné pole. To môže byť nedostatok, pretože predchádzajúci zoznam nemôžete ponechať pre iné operácie.
Tu je postup, ako obrátiť pole pomocou reverznej metódy:
jazyky = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
tlačiť (jazyky)
Výkon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Použite obrátenú funkciu
Obrátená funkcia iteruje cez zoznam, pole alebo akúkoľvek inú sekvenciu a vráti svoju obrátenú kópiu. Musíte však explicitne deklarovať obrátený výstup ako zoznam.
Funguje to takto:
jazyky = [1, 2, 3, 4, 5, 6, 7, 8, 9]
vytlačiť (zoznam (obrátený (jazyky)))
Výkon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Buďte kreatívni s poliami
Polia alebo zoznamy sú bežné spôsoby ukladania údajov. V závislosti od vášho cieľa možno budete chcieť prezentovať údaje klientovi v opačnom poradí. Jedným zo spôsobov, ako to urobiť, je obrátiť pole alebo zoznam pred ich vykreslením. Ako ste videli, existuje niekoľko spôsobov, ako invertovať zoznam v Pythone. Vyberte si, čo vám najlepšie vyhovuje a čo zodpovedá vašej logike pre konkrétny problém.
Môžete tiež vidieť, ako obrátiť pole v iných programovacích jazykoch, aby ste lepšie pochopili logiku pozadia.
Ako obrátiť pole v C++, Pythone a JavaScripte
Prečítajte si ďalej
Súvisiace témy
- Programovanie
- Programovanie
- Python
- Algoritmy
O autorovi
Idowu je nadšený z akejkoľvek inteligentnej technológie a produktivity. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, no tiež sa rád raz za čas odtrhne od rutiny. Jeho vášeň ukázať ľuďom cestu okolo moderných technológií ho motivuje k ďalšiemu písaniu.
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!
Kliknutím sem sa prihlásite na odber