Kako nizovi i popisi rade u Pythonu

Kako nizovi i popisi rade u Pythonu

Nizovi i popisi neke su od najkorisnijih struktura podataka u programiranju - iako ih malo ljudi zaista koristi u potpunosti. Danas ću vam govoriti o osnovama, zajedno s nekim jednostavnim primjerima Pythona.





Preduvjeti

Nema mnogo toga što trebate znati unaprijed da biste naučili ove pojmove. Osnovno znanje o programskim paradigmama i Pythonu bit će od pomoći, ali nije potrebno. Pročitajte naše osnovni primjeri Pythona ako ne znate odakle početi. Ako mislite da je Python beskoristan jezik, provjerite naše razloge zašto nije.





Dok se sljedeće temeljne ideje mogu primijeniti na bilo koji jezik, ja ću demonstrirati primjere u Pythonu. To je jednostavan jezik za učenje i pruža izvrsnu platformu za razumijevanje onoga što se događa. Osim ovoga, tutorialspoint.com pruža izvrstan internetski tumač Pythona - čak ne morate ni instalirati Python ako ne želite (ako želite, pogledajte naš vodič kroz virtualna okruženja).





Strukture podataka

Što je a struktura podataka ? Na svojoj najosnovnijoj razini, struktura podataka način je učinkovitog pohranjivanja podataka. Lako se zbuniti jer strukture podataka nisu vrste podataka . Vrste podataka govore prevoditelju (ili u Pythonovom slučaju tumaču) kako se podaci namjeravaju koristiti. Strukture podataka specificiraju operacije koje se mogu izvesti i često primjenjuju posebna pravila i propise.

Možda ste čuli za neke linearni vrste podataka (elementi su uzastopni):



  • Niz
  • Matrica
  • Tablica za pretraživanje

Slično, liste često sadrže pravila i metode kojima se regulira njihov rad. Neki uobičajeni popisi su:

  • Povezani popis
  • Dvostruko povezan popis
  • Popis niza ili Dinamički niz

Postoji mnoštvo različitih struktura podataka. Možda ste čuli za binarna stabla , grafikona , ili raspršivanja . Danas ću razgovarati o osnovama, ali možda ćete htjeti naučiti više kad vam bude udobno.





Niz

Krenimo od početka. Niz je jednostavna zbirka (povezanih) vrijednosti. Te se vrijednosti nazivaju elementima. Obično mogu biti bilo koje vrste podataka koje volite, uključujući objekte ili druge popise! Glavno upozorenje kod polja je da svi podaci moraju biti isti - ne možete pohraniti miješane nizove i cijele brojeve. Vas gotovo uvijek morate navesti koliko elemenata želite pohraniti. Promjenjive veličine ili dinamički nizovi postoje, ali nizovi fiksne duljine jednostavniji su za početak.

Python donekle komplicira stvari. To vam vrlo olakšava stvari, ali se ne pridržava uvijek strogih definicija struktura podataka. Većina objekata u Pythonu obično su popisi, tako da je stvaranje niza zapravo više posla. Evo nekoliko početnih kodova:





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

Prvi redak uvozi nizu module - to je potrebno za rad s nizovima. Drugi redak stvara novi niz koji se naziva brojevima i inicijalizira ga vrijednostima 2, 4, 6 i 8. Svakom elementu dodjeljuje se cijeli broj vrijednost koja se naziva a ključ ili indeks . Ključevi počinju od nula , tako brojevi [0] pristupit će prvom elementu ( 2 ):

Možda se pitate što je 'ja' koristi se za. Ovo je tip koda koji govori Pythonu da će niz pohranjivati ​​cijele brojeve. Ovakve stvari obično ne bi bile potrebne u Pythonu (smatralo bi se 'nepistonskim'). Razlog tome je jednostavan. Nizovi u Pythonu vrlo su tanki omoti na temeljnim C nizovima vašeg operacijskog sustava. To znači da su brzi i stabilni, ali se ne moraju uvijek pridržavati Python sintakse.

kako obrezati videozapise na androidu

Ne možete pohraniti mješovite vrste u ove nizove. Recimo da želite pohraniti niz 'makeuseof.com':

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

To neće biti dopušteno i izvest će iznimku:

Evo kako možete ispisati sve elemente:

print(numbers)

Ova metoda pristupa elementima niza dobro funkcionira i savršena je za pravi zadatak. Ono za što nije dobro je pristup cijelom nizu. Programeri su sami po sebi lijeni pa ću rado napisati više, bolji kod, ako to znači da mogu olakšati održavanje i smanjiti napor kopiranja i lijepljenja.

Svaki programski jezik implementirat će neku vrstu petlje, savršene za ponavljanje (petlje) preko elemenata popisa. Najčešće su petlje dok i za . Python čini stvari još lakšima pružajući za u petlja:

for number in numbers:
print(number)

Uočite kako elementima niste morali pristupiti po njihovom ključu. Ovo je mnogo bolji način rada s nizom. Alternativni način ponavljanja popisa je pomoću a za petlja:

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

Ovo radi potpuno isto kao i prethodni primjer, iako ste morali navesti broj elemenata u nizu ( len (automobili) ), zajedno s prolazom i kao ključ niza. Ovo je gotovo točno kôd koji za u petlje pokrenuti. Ovaj način pruža nešto veću fleksibilnost i nešto je brži (iako za u petlje su više nego dovoljno brze većina od vremena.)

Popisi

Sada kad znate kako nizovi rade, pogledajmo popis. Ponekad može biti zbunjujuće jer ljudi međusobno koriste različitu terminologiju i popise su nizovi ... nekako.

Popis je posebna vrsta niza. Najveća razlika je u tome što popisi mogu sadržavati mješovito vrste (zapamtite, nizovi moraju sadržavati elemente istog tipa). Popisi su u Pythonu vrlo jednostavni:

ventilator prijenosnog računala glasan, ali nije vruć
cars = ['Ford', 'Austin', 'Lancia']

Uočite kako ne morate uvoziti nizu modul?

Ova sintaksa deklarira popis koji se naziva automobili. Unutar uglatih zagrada svaki je element popisa deklariran. Svaki je element odvojen zarezom, a kako je svaki element niz, deklarirate ih unutar navodnika. Python zna da je ovo objekt, pa je ispisati naredba će ispisati sadržaj popisa:

print(cars)

Baš kao i kod niza, možete ponavljati elemente popisa pomoću petlji:

for car in cars:
print(car)

Pravi stranački trik lista je njihov mješoviti tip. Samo naprijed i dodajte neke dodatne podatke:

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

Pythonu to ne predstavlja problem - čak nije napravio iznimku:

Lako je dodati nove elemente na popis (nešto što nije moguće s nizovima):

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

Također možete spojiti dva popisa u jedan:

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

Jednako je lako ukloniti elemente pomoću ukloniti sintaksa:

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

To pokriva osnove popisa i nizova u Pythonu. Zašto ne razmislite o projektu kodiranja, poput čitanja i pisanja u Google tablice, čitanja json podataka. Možda biste svoje nove vještine mogli upotrijebiti u izradi nekih prilagođeni gumbi za prečace . Unatoč različitom programskom jeziku, ova načela niza i dalje vrijede.

Udio Udio Cvrkut E -pošta 5 savjeta za nadopunu vaših VirtualBox Linux strojeva

Umorni ste od loših performansi koje nude virtualni strojevi? Evo što biste trebali učiniti kako biste povećali performanse VirtualBox -a.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Programiranje
  • Piton
O autoru Joe Coburn(136 objavljenih članaka)

Joe je diplomirao računalne znanosti na Sveučilištu Lincoln, UK. On je profesionalni programer softvera, a kad ne leti bespilotnim letjelicama ili ne piše glazbu, često ga se može zateći kako fotografira ili proizvodi video zapise.

Više od Joea Coburna

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu