
Peter Holmes
0
4353
1315
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 Pythona biti će korisno, ali nije potrebno. Pročitajte naše osnovne primjere Pythona 10 osnovnih primjera Pythona koji će vam pomoći da brzo naučite 10 osnovnih primjera Pythona koji će vam pomoći da brzo naučite Ovaj č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. moguće. ako ne znate odakle početi. Ako mislite da je Python beskoristan jezik, pogledajte naše razloge zašto to nije 5 razloga zašto Python programiranje nije beskorisno 5 razloga zašto Python programiranje nije beskorisno Python - 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. .
Iako se sljedeće temeljne ideje mogu primijeniti na bilo koji jezik, pokazat ću primjere u Pythonu. Jezik je jednostavan za naučiti i pruža odličnu platformu za razumijevanje što se događa. Uz sve to, tutorialspoint.com nudi odličan internetski tumač Pythona - čak ni ne morate instalirati Python ako ne želite (ako to učinite, pogledajte naš vodič za virtualno okruženje Saznajte kako koristiti Python Virtual Okoliš Saznajte kako koristiti Python virtualno okruženje Bez obzira jeste li iskusni Python programer ili tek započinjete, učenje kako postaviti virtualno okruženje bitno je za bilo koji Python projekt.).
Strukture podataka
Što je a struktura podataka? Na svojoj najosnovnijoj razini struktura podataka je način 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, arena često sadrže pravila i metode kojima se regulira njihovo djelovanje. Neki su uobičajeni popisi:
- Povezani popis
- Popis dvostruko povezanih
- 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 budete voljni.
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 ne drži se 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 broja brojeva uvoza niza = array ('i', [2, 4, 6, 8]) brojeva za ispis [0]
Prva linija uvozi red modul - potreban je 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):
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 (smatrao bi se “unpythonic”). Razlog za to je jednostavan. Nizovi u Python-u 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. Recimo da želite pohraniti niz “makeuseof.com”:
brojevi = niz ('i', [2, 4, 6, "makeuseof.com"])
To neće biti dozvoljeno i izuzeće je:
Evo kako možete ispisati sve elemente:
brojevi za ispis
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 napisati još, bolji kod, ako to znači da mogu olakšati održavanje i smanjiti napor kopiranja i lijepljenja.
Svaki programski jezik implementirat će određenu petlju koja je savršena za ponavljanje (petlje) nad elementima popisa. Najčešće su petlje dok i za. Python stvari čini 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 (automobila)), 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 otisak Izvod će ispisati sadržaj popisa:
tiskane automobile
Baš kao i sa nizom, možete ponavljati elemente popisa pomoću petlje:
za automobil u automobilima: print car
Pravi stranački trik lista je njihov miješani tip. Nastavite i dodajte dodatne podatke:
automobili = ['Ford', 'Austin', 'Lancia', 1, 0,56]
Ovo nije problem za Python - nije ni stvorio iznimku:
Na popis je lako dodati nove elemente (nešto nije moguće s nizovima):
automobili = ['Ford', 'Austin'] automobili za ispis automobila.append ('Lancia') print automobili
Također možete spojiti dva popisa u jedan:
automobili = ['Ford', 'Austin'] automobili za ispis drugo_cars = ['Lotus', 'Lancia'] automobili.extend (other_cars) ispisati automobile
Baš je jednostavno ukloniti elemente pomoću ukloniti sintaksa:
automobili = ['Ford', 'Austin', 'Lotus', 'Lancia'] tiskaju automobile.remove ('Ford') tiskaju automobile
To se odnosi na osnove popisa i nizova u Pythonu. Zašto ne biste razmotrili projekt kodiranja, poput čitanja i pisanja na Google tablice Kako čitati i pisati na Google tablice s Python-om Kako čitati i pisati u Google Sheets s Python-om Python, može se činiti čudnim i neobičnim, no lako je to naučiti i koristiti , U ovom ću vam članku pokazati kako čitati i pisati na Google tablice koristeći Python. , čitanje json podataka Kako dobiti Python i JavaScript za komunikaciju koristeći JSON Kako do Pythona i JavaScript da komuniciraju koristeći JSON Danas ću vam pokazati kako pomoću JSON-a možete slati podatke iz JavaScript-a u Python. Opisat ću kako postaviti web poslužitelj, zajedno sa svim kodom koji vam je potreban. , Možda biste mogli postaviti svoje nove vještine pomoću nekih prilagođenih tipki prečaca. Napravite vlastite tipke prečaca s Arduinom. Napravite vlastite prilagođene tipke prečaca s arduinom. Skromni Arduino može učiniti puno stvari, ali jeste li znali da to može oponašati USB tipkovnica? S ovim jednostavnim krugom možete kombinirati dugačke prečace na tipkovnici u jednu prilagođenu tipku prečaca. , Iako su različit programski jezik, ta se načela još uvijek primjenjuju.
Jeste li naučili nešto novo? Želite li vidjeti neki složeniji sadržaj? Javite nam svoje misli u komentarima u nastavku!