Oglas

Nizovi i popisi neke su od najkorisnijih struktura podataka u programiranju - iako ih malo ljudi stvarno koristi u potpunosti. Danas ću vam govoriti s osnovama, zajedno s nekoliko jednostavnih primjera Pythona.

Preduvjeti

Ne morate mnogo znati prije vremena da biste naučili ove koncepte. Osnovno znanje programiranja paradigmi i Python će biti od pomoći, ali nije potrebno. Pročitajte naše osnovni Python primjeri 10 osnovnih primjera Pythona koji će vam pomoći da brzo naučiteOvaj članak osnovnih primjera pythona namijenjen je onima koji već imaju određeno iskustvo u programiranju i jednostavno žele prijeći na Python što je brže moguće. Čitaj više ako ne znate odakle započeti. Ako mislite da je Python beskoristan jezik, pogledajte naš razloge zbog kojih to nije 5 razloga zašto Python programiranje nije beskorisnoPython - ili ga volite ili mrzite. Možete čak i ljuljati s jednog kraja na drugi poput klatna. Bez obzira na to, Python je jezik o kojem je teško biti ambivalentan. Čitaj više .

Iako se sljedeće temeljne ideje mogu primijeniti na bilo koji jezik, pokazat ću primjere u Pythonu. Jezik je jednostavan za učenje i odlična je platforma za razumijevanje što se događa. Pored ovoga, tutorialspoint.com pruža izvrstan internetski tumač Pythona - čak i ne morate instalirati Python ako ne želite (ako to želite, provjerite naš vodič za virtualna okruženja Naučite kako koristiti virtualno okruženje PythonaBez obzira jeste li iskusni Python programer ili tek započinjete, učenje kako postaviti virtualno okruženje bitno je za svaki Python projekt. Čitaj više ).

Strukture podataka

Što je a struktura podataka? Na svojoj osnovnoj 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 Python-ovom slučaju tumaču) kako se podaci trebaju koristiti. Strukture podataka određuju operacije koje se mogu izvoditi i često primjenjuju posebna pravila i propise.

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

  • red
  • Matriks
  • Tablica pretraživanja

Slično tome, arena često sadrže pravila i metode kojima se regulira njihovo djelovanje. Neki su uobičajeni popisi:

  • Povezani popis
  • Dvostruko povezan popis
  • Popis nizova ili dinamički niz

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

red

Krenimo od početka. Niz je jednostavna zbirka (povezanih) vrijednosti. Te se vrijednosti nazivaju elementima. Obično mogu biti bilo koje vrste podataka koje želite, uključujući predmete ili druge popise! Glavna upozorenje s nizovima jest da svi podaci moraju biti isti - ne možete pohraniti miješane nizove i cijeli brojeve. Vas skoro uvijek morate navesti koliko elemenata želite pohraniti. Promjenjiva veličina ili dinamički nizovi postoje, ali nizovi fiksne duljine jednostavniji su za početak.

Python donekle komplicira stvari. To vam čini vrlo lako, ali se ne drži uvijek strogih definicija strukture podataka. Većina objekata na Pythonu obično je popise, tako da je stvaranje niza zapravo više posla. Evo nekoliko početnih kodova:

iz uvoza polja matrice. brojevi = niz ('i', [2, 4, 6, 8]) brojevi za ispis [0]

Prva linija uvozi red modul - koji je potreban za rad s nizovima. Drugi redak stvara novi niz koji se zove brojevi i inicijalizira ga s vrijednostima 2, 4, 6 i 8. Svakom se elementu dodjeljuje an broj vrijednost koja se zove a ključ ili indeks. Ključevi počinju od nula, tako Brojevi [0] pristupit će prvom elementu (2):

Python Arrays

Možda se pitate što „I” koristi se za. Ovo je typecode koji govori Python-u da će se niz pohraniti cijeli brojevi. Ovakva stvar obično ne bi bila potrebna u Pythonu (smatrala bi se „nepitonskom“). Razlog za to je jednostavan. Nizovi u Pythonu vrlo su tanki omotač na donjim C nizovima vašeg operativnog sustava. To znači da su brzi i stabilni, ali ne moraju se uvijek pridržavati Python sintakse.

Ne možete pohraniti miješane vrste u ove nizove. Recite da želite pohraniti niz "makeuseof.com":

brojevi = niz ('i', [2, 4, 6, "makeuseof.com"])

To neće biti dozvoljeno i izuzeće je:

Python Arrays

Evo kako možete ispisati sve elemente:

brojevi za ispis
Python Arrays

Ova metoda pristupa elementima matrice djeluje dobro i savršena je za pravi zadatak. Ono što nije dobro je pristup cijelom nizu. Programeri su sami po sebi lijeni pa ću rado pisati još, 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, koji su savršeni za ponavljanje (petlje) nad elementima popisa. Najčešće su petlje dok i za. Python čini stvari još lakšim pružanjem a za u petlja:

za broj u brojevima: broj za ispis

Primijetite kako elementima niste morali pristupiti njihovim ključem. Ovo je puno bolji način rada s nizom. Alternativni način ponavljanja popisa je s a za petlja:

za i u rasponu (len (brojevi)): brojevi za ispis [i]

To se događa na isti način kao u prethodnom primjeru, mada ste morali odrediti broj elemenata u nizu (len (automobili)), zajedno s prolaskom ja kao ključ za niz. To je gotovo točno šifra koja za u petlje pokrenuti. Na ovaj način se pruža nešto veća fleksibilnost i nešto je brža (iako za u petlje su više nego dovoljno brze većina od vremena.)

arena

Sada kada znate kako rade nizovi, pogledajmo popis. Ponekad to može biti zbunjujuće, jer ljudi različito koriste različitu terminologiju i popise su nizovi... vrsta.

Popis je posebna vrsta polja. Najveća je razlika što popisi mogu sadržavati mješovit vrste (zapamtite, nizovi moraju sadržavati elemente iste vrste). Popisi su na Pythonu vrlo jednostavni:

automobili = ['Ford', 'Austin', 'Lancia']

Primijetite kako vam nije potrebno uvoziti red modul?

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

tiskane automobile
Python Arrays

Baš kao i sa nizom, možete ponavljati elemente popisa pomoću petlje:

za automobil u automobilima: car print
Python Arrays

Pravi stranački trik lista je njihov miješani tip. Samo napred i dodajte još dodatnih podataka:

automobili = ['Ford', 'Austin', 'Lancia', 1, 0,56]

Ovo nije problem za Python - nije ni stvorio iznimku:

Python Arrays

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

automobili = ['Ford', 'Austin'] tiskane automobile. cars.append ( 'Lancia') tiskane automobile
Python Arrays

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

automobili = ['Ford', 'Austin'] tiskane automobile. other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) tiskane automobile
Python Arrays

Jednostavno je ukloniti elemente pomoću ukloniti sintaksa:

automobili = ['Ford', 'Austin', 'Lotus', 'Lancia'] tiskane automobile. cars.remove ( "Ford) tiskane automobile
Python Arrays

To se odnosi na osnove popisa i nizova u Pythonu. Zašto ne biste razmotrili projekt kodiranja, kao što je čitanje i pisanje na Google tablice Kako čitati i pisati na Google tablice s Python-omPython se može činiti čudnim i neobičnim, no lako ga je naučiti i koristiti. U ovom ću vam članku pokazati kako čitati i pisati na Google tablice koristeći Python. Čitaj više , čitanje json podataka Kako dobiti Python i JavaScript za komuniciranje pomoću JSON-aDanas ću vam pokazati kako koristiti JSON za slanje podataka s JavaScript-a na Python. Opisat ću kako postaviti web poslužitelj, zajedno sa svim kodom koji vam je potreban. Čitaj više . Možda biste mogli koristiti svoje nove vještine da biste ih koristili prilagođeni gumbi za prečace Napravite svoje vlastite tipke prečaca s arduinomSkromni Arduino može učiniti puno stvari, ali jeste li znali da može oponašati USB tipkovnicu? Pomoću ovog jednostavnog kruga možete kombinirati dugačke prečace na tipkovnici u jednu prilagođenu tipku prečaca. Čitaj više . Iako su drugačiji programski jezik, ta se polja i dalje primjenjuju.

Jeste li naučili nešto novo? Želite li vidjeti neki složeniji sadržaj? Javite nam svoje misli u komentarima u nastavku!

Joe je diplomski studij informatike na Sveučilištu u Lincolnu u Velikoj Britaniji. On je profesionalni programer softvera, a kad ne leti dronovima ili piše glazbu, često ga mogu naći fotografirati ili snimati videozapise.