Cum funcționează matricele și listele în Python

Cum funcționează matricele și listele în Python

Tablourile și listele sunt unele dintre cele mai utile structuri de date în programare - deși puțini oameni le folosesc cu adevărat la întregul lor potențial. Astăzi vă voi vorbi prin elementele de bază, împreună cu câteva exemple simple Python.





Condiții prealabile

Nu trebuie să știți multe din timp pentru a învăța aceste concepte. O cunoaștere de bază a paradigmelor de programare și Python va fi utilă, dar nu este necesară. Citiți-ne exemple de bază Python dacă nu știi de unde să începi. Dacă credeți că Python este un limbaj inutil, verificați motivele noastre pentru care nu este.





Deși următoarele idei fundamentale pot fi aplicate oricărui limbaj, voi demonstra exemplele din Python. Este un limbaj ușor de învățat și oferă o platformă excelentă pentru a înțelege ce se întâmplă. In plus, tutorialepoint.com oferă un interpret Python online excelent - nici nu trebuie să instalați Python dacă nu doriți (dacă faceți acest lucru, consultați ghidul nostru pentru medii virtuale).





Structuri de date

Ce este un structură de date ? La nivelul său de bază, o structură de date este o modalitate de stocare eficientă a datelor. Este ușor să vă confundați, deoarece structurile de date nu sunt tipuri de date . Tipurile de date spun compilatorului (sau, în cazul lui Python, interpretul) cum se intenționează utilizarea datelor. Structurile de date specifică operațiunile care pot fi efectuate și implementează adesea reguli și reglementări specifice.

Poate ai auzit de unele liniar tipuri de date (elementele sunt secvențiale):



  • Matrice
  • Matrice
  • Tabel de căutare

În mod similar, liste conțin adesea reguli și metode pentru a reglementa modul în care funcționează. Unele liste comune sunt:

  • Listă legată
  • Lista dublă legată
  • Array List sau Dynamic Array

Există o mulțime de structuri de date diferite. Poate ai auzit de copaci binari , grafice , sau hashuri . Voi discuta elementele de bază astăzi, dar este posibil să doriți să aflați mai multe după ce vă simțiți confortabil.





Matrice

Să începem de la început. O matrice este o colecție simplă de valori (înrudite). Aceste valori se numesc elemente. Ele pot fi de obicei orice tip de date doriți, inclusiv obiecte sau alte liste! Avertismentul principal cu matrici este că toate datele trebuie să fie aceleași - nu puteți stoca șiruri și numere întregi mixte. Tu aproape trebuie întotdeauna să specificați câte elemente doriți să stocați. Dimensiune variabilă sau matrice dinamice există, dar matricile cu lungime fixă ​​sunt mai simple pentru început.

Python complică oarecum lucrurile. Îți face lucrurile foarte ușoare, dar nu rămâne întotdeauna la definiții stricte ale structurilor de date. Majoritatea obiectelor din Python sunt de obicei liste, deci crearea unui tablou este de fapt mai multă muncă. Iată câteva coduri de pornire:





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

Prima linie importă matrice modul - este necesar pentru a lucra cu tablouri. A doua linie creează o nouă matrice numită numere și îl inițializează cu valorile 2, 4, 6 și 8. Fiecărui element i se atribuie un întreg valoare numită a cheie sau index . Tastele încep de la zero , asa de numere [0] va accesa primul element ( 2 ):

S-ar putea să vă întrebați ce „eu” este folosit pentru. Acesta este un tip de cod care spune Python matricea va stoca numere întregi. Un astfel de lucru nu ar fi necesar în mod normal în Python (ar fi considerat „unpitonic”). Motivul pentru aceasta este simplu. Matricile din Python sunt o învelitoare foarte subțire pe matricile C subiacente ale sistemului dvs. de operare. Aceasta înseamnă că sunt rapide și stabile, dar este posibil să nu adere întotdeauna la sintaxa Python.

cum se elimină drm cu calibru

Nu puteți stoca tipuri mixte în aceste tablouri. Spuneți că doriți să stocați șirul „makeuseof.com”:

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

Acest lucru nu va fi permis și va genera o excepție:

Iată cum puteți imprima toate elementele:

print(numbers)

Această metodă de accesare a elementelor matrice funcționează bine și este perfectă pentru sarcina corectă. Ceea ce nu este bun este accesarea întregii matrice. Programatorii sunt leneși în mod inerent, așa că voi scrie cu bucurie mai mult, un cod mai bun, dacă înseamnă că pot ușura întreținerea și pot reduce efortul de copiere și lipire.

Fiecare limbaj de programare va implementa o buclă de un fel, care este perfectă pentru iterarea (buclarea) peste elementele listei. Cele mai frecvente bucle sunt in timp ce și pentru . Python face lucrurile și mai ușoare oferind un pentru în buclă:

for number in numbers:
print(number)

Observați cum nu a trebuit să accesați elementele prin cheia lor. Acesta este un mod mult mai bun de a lucra cu o matrice. O modalitate alternativă de a repeta o listă este cu un pentru buclă:

for i in range(len(numbers)):
print(numbers[i])

Aceasta face exact același lucru ca și exemplul anterior, deși a trebuit să specificați numărul de elemente din matrice ( len (mașini) ), împreună cu trecerea eu ca cheie a matricei. Acesta este aproape exact codul care pentru în buclele rulează. Acest mod oferă o ușoară flexibilitate și este puțin mai rapid (deși pentru în buclele sunt mai mult decât rapide majoritate timpului.)

Liste

Acum, că știți cum funcționează matricele, să ne uităm la o listă. Poate fi confuz uneori, întrucât oamenii folosesc diferite terminologii în mod interschimbabil și liste sunt tablouri ... cam.

O listă este un tip special de matrice. Cea mai mare diferență este că listele pot conține amestecat tipuri (nu uitați, matricele trebuie să conțină elemente de același tip). Listele sunt foarte ușoare în Python:

de ce nu funcționează Amazon Prime
cars = ['Ford', 'Austin', 'Lancia']

Observați cum nu trebuie să importați fișierul matrice modul?

Această sintaxă declară o listă numită mașini. În parantezele pătrate, fiecare element al listei este declarat. Fiecare element este separat printr-o virgulă și, deoarece fiecare element este un șir, le declarați în ghilimele. Python știe că acesta este un obiect, deci imprimare declarația va afișa conținutul listei:

print(cars)

La fel ca în cazul matricei, puteți itera elementele listei folosind bucle:

for car in cars:
print(car)

Adevăratul truc de partid al listelor este tipul lor mixt. Continuați și adăugați câteva date suplimentare:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

Aceasta nu este o problemă pentru Python - nici măcar nu a ridicat o excepție:

Este ușor să adăugați elemente noi la o listă (ceva care nu este posibil cu tablourile):

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

De asemenea, puteți îmbina două liste într-o singură:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

Este la fel de ușor să eliminați elemente folosind elimina sintaxă:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

Asta despre acoperă elementele de bază ale listelor și matricilor din Python. De ce să nu luați în considerare un proiect de codificare, cum ar fi citirea și scrierea în Foi de calcul Google, citirea datelor json. Poate ai putea folosi noile tale abilități pentru a face unele butoane de comenzi rapide personalizate . În ciuda faptului că este un limbaj de programare diferit, aceste principii de matrice se aplică în continuare.

Acțiune Acțiune Tweet E-mail 5 sfaturi pentru a vă supraîncărca mașinile VirtualBox Linux

V-ați săturat de slaba performanță oferită de mașinile virtuale? Iată ce ar trebui să faceți pentru a vă îmbunătăți performanța VirtualBox.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Programare
  • Piton
Despre autor Joe Coburn(136 articole publicate)

Joe este absolvent de Informatică de la Universitatea Lincoln, Marea Britanie. Este un dezvoltator de software profesionist și, atunci când nu zboară cu drone sau nu scrie muzică, poate fi găsit adesea făcând fotografii sau producând videoclipuri.

Mai multe de la Joe Coburn

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona