Inversarea unei liste sau a unei matrice este o sarcină comună de programare. Există multe cazuri în care ar putea fi necesar să prezentați datele în ordine inversă, cum ar fi atunci când sortați o listă.
Cum poți inversa o listă sau o matrice cu Python? Veți afla diferitele abordări în acest articol.
Creați o copie cu o buclă for
In timp ce Python este bucla pentru este mai detaliat, poate fi la îndemână în unele cazuri. De exemplu, oferă mai multă flexibilitate atunci când se efectuează o logică complexă în anumite puncte ale operației inverse.
Când utilizați o indentație pentru buclă, abordarea obișnuită este să iterați lista originală în ordine inversă. Începând cu elementul final, fiecare iterație adaugă apoi elementul anterior la o nouă listă.
Având în vedere o listă de numere întregi între unu și nouă ca exemplu, iată cum să inversați o matrice folosind o indentație pentru buclă:
limbi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Creați o listă goală pentru a păstra matricea inversată:
lista_inversată = []# Scădeți unul din lungimea matricei originale pentru a începe de la ultimul index:
reductor = len (limbi)-1# Inversați lista în interiorul unei bucle for:
pentru eu in limbi:
lista_inversată.append (limbi[reductor]) # Adăugați rezultatul la lista goală
reductor -=1 # Scădeți indicele cu unul la fiecare iterație folosind reductorul
imprimare (listă_inversată)
Ieșire:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Inversați o listă sau o matrice utilizând Lista de înțelegere
A înțelegerea listei produce un cod mai scurt. Și nu este nevoie de o variabilă temporară, deoarece înțelegerea listei acționează pe o listă în loc.
Pentru a efectua operația anterioară, folosind o listă de înțelegere:
reductor = len (limbi)
# Decrementați indexul într-o funcție de interval folosind bucla for într-o înțelegere a listei
Lista_inversată = [limbi[reductor] pentru reductorul în interval (reductor -1,-1,-1)]
imprimare (listă_inversată)
Ieșire:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Utilizați operatorul Slice
Operatorul de felie de listă este destul de simplu, deși are unele limitări. De exemplu, este posibil să nu puteți personaliza rezultatul așa cum ați proceda atunci când utilizați un pentru buclă.
Iată cum să inversați o listă folosind operatorul slice:
limbi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = limbi[::-1]
imprimare (rev_list)
Ieșire:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
The [::-1] sintaxa este o comandă rapidă inteligentă care are ca rezultat o listă inversată. De fapt înseamnă „copiați fiecare element al listei, începând de la sfârșit și numărând înapoi” – adică „întoarceți-l”!
Utilizați metoda inversă a unui Array
Aceasta este o altă metodă care acționează în loc: modifică matricea originală. Acest lucru poate fi un neajuns, deoarece nu puteți păstra lista anterioară pentru alte operațiuni.
Iată cum să inversați o matrice folosind metoda inversă:
limbi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
imprimare (limbi)
Ieșire:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Utilizați funcția inversată
Funcția inversată iterează peste o listă, o matrice sau orice altă secvență și returnează copia sa inversată. Cu toate acestea, trebuie să declarați în mod explicit rezultatul inversat ca o listă.
Asa functioneaza:
limbi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
imprimare (lista (inversată (limbi)))
Ieșire:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Deveniți creativ cu matrice
Matricele sau listele sunt modalități comune de stocare a datelor. În funcție de obiectivul dvs., este posibil să doriți să prezentați date clientului în ordine inversă. O modalitate de a face acest lucru este să inversați matricea sau lista înainte de a o randa. După cum ați văzut, există câteva moduri de a inversa o listă în Python. Alegeți ceea ce funcționează cel mai bine pentru dvs. și se aliniază cu logica dvs. pentru o anumită problemă.
Ați putea dori, de asemenea, să vedeți cum să inversați o matrice în alte limbaje de programare pentru a înțelege mai bine logica de fundal.
Cum să inversați o matrice în C++, Python și JavaScript
Citiți în continuare
Subiecte asemănătoare
- Programare
- Programare
- Piton
- Algoritmi
Despre autor
Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place și să se desprindă de rutină din când în când. Pasiunea lui pentru a le arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai mult.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Click aici pentru a te abona