U Pythonu, popisi su uređene zbirke. Oni su važna komponenta programskog koda. Popisi se odnose na ugrađene jezične objekte. Uz njihovu pomoć možete brzo i učinkovito upravljati velikom količinom informacija i struktura podataka bilo koje složenosti.
Popisi su fleksibilni i promjenjivi. vrstu podataka. Mogu biti proizvoljne duljine i neograničene količina informacija. Kao elementi niza dopušteno je koristiti nizove, jednostavne i stvarne brojeve, rječnike. Svaka varijabla popisa u Pythonu može se zasebno tretirati, izbrisati ili zamijeniti.
Popisi imaju određeni skup svojstava koji ih razlikuju od drugih tipova podataka:
Popisi se mogu zamijeniti za povezane strukture podataka. Ali u stvarnosti to su posude referenci na objekte, a ne njihove kopije. Oni su poput adresara. Svi elementi popisa ukazuju na mjesto željenog objekta. Pri tome su Python popisi slični C nizovima, ali su implementirani u interpreteru.
Formalno postoje tri kategorije podataka na jeziku. To su brojevi, karte i sekvence kojima pripada vrsta popisa. Za svaku skupinu postoji zajednički skup operacija. Na primjer, zbrajanje, oduzimanje i množenje za numeričke objekte ili pristup na ključ za rječnike.
Sekvence također imaju svoje karakteristične operacije:
Popisi imaju širi raspon mogućnosti od nizova u Pythonu. To je moćan razvojni alat s nizom specifičnih funkcija primjenjivih samo za popis vrsta.
Kako izgledaju metode popisa u praksi:
Prilikom izvođenja ulančavanja na svakoj strani znaka "+", sekvence istog tipa moraju se pronaći, inače će tumač prikazati poruku o pogrešci:
Za dodavanje niza i popisa u Pythonu potrebno je izvršiti preliminarnu konverziju za str tip:
Kada stvarate popis u Pythonu, morate se pridržavati strogih pravila sintakse. Svaki objekt mora biti zatvoren u uglate zagrade, a stavke odvojene zarezima.
Ponavljanje je proces ponavljanja. U kontekstu popisa, ovo je alternativni napredak kroz elemente objekta koji se ponavlja. Na primjer:
Ako je iteracija samo prolaz svakog elementa, tada je generiranje proces stvaranja novog objekta popisa vrsta. U Pythonu, generatori popisa izgledaju kao petlje, ali rade brže i sintaktički izgledaju mnogo jednostavnije:
U oba primjera rezultat je identičan. No, pomoću generatora, kod je mnogo kraći i lakši. Ovaj je pristup u potpunosti u skladu s Zen Zen od Pythona. To je Zen, ili kod jezika, u kojem jedna od točaka glasi: "Jednostavno je bolje nego komplicirano."
Ove dvije operacije su slične po izgledu i omogućuju vam rukovanje pojedinačnim stavkama popisa u Pythonu. Ali postoji značajna razlika. Kao rezultat indeksiranja, vraća se zasebni dio slijeda. A vađenje dijela stvara novi objekt popisa:
Jezični konstrukti dopuštaju ne samo izdvajanje, već i promjenu pojedinih elemenata, dodjeljivanje novih vrijednosti. Kao rezultat, vraća se isti popis, samo s drugom varijablom. Ova operacija je slična dodjeli na indeksu na jeziku C. Interpreter zamjenjuje staru referencu na objekt naveden u ofsetu s novim:
To je prilično složena operacija koja se odvija u nekoliko faza. Prvo, tumač briše sve elemente lijevo od operatora. U ovom primjeru, ovo je "jedan" i "osam". Zatim se svi objekti s desne strane operatera umetnu u popis, počevši od lijevog ruba.
Opisani postupak osigurava fleksibilan rad s rezovima. Broj elemenata koje treba ukloniti i dodati može varirati. Operacija je prikladna za uklanjanje i zamjenu objekata, kao i za proširenje popisa. To je prilično snažan način za obradu koda. No, programeri ga rijetko koriste u praksi, preferirajući jednostavnije umetanje, pop i uklanjanje uputa.
Većina metoda ili funkcija ima za cilj izravno mijenjanje objekta. Najčešći je .append (). Dodaje stavke na kraj popisa:
Druga jednako popularna metoda naziva se sort (). Namijenjen je sortiranju popisa u Pythonu. Metoda reordira elemente pomoću operatora standardne usporedbe. Također se može koristiti za složenije zadatke pomoću imenovanih argumenata:
Primjer je koristio sintaksu "name = value" za prosljeđivanje postavki. Ključni argument omogućuje vam postavljanje vlastitih parametara za usporedbu. U ovom slučaju, to su elementi s malim slovom. Obrnuto znači "suprotno", to jest, u silaznom redoslijedu, ne povećavajući se.
Pri radu s ovim metodama treba razmotriti sljedeće značajke: .sort () i .append () mijenjati popis, ali ga ne vraćati. Konstrukcija my_list = List.sort () nema smisla niti rezultata. Zato su u najnovijim verzijama jezika programeri uveli funkciju sorted (), koja kao argument uzima popis:
Python nudi dodatne metode za obavljanje specijalizirane obrade popisa. Na primjer, obrnuto se koristi za promjenu redoslijeda elemenata. Za umetanje više elemenata na kraju ili brisanje, potrebne su metode proširenja i pop. Postoji i obrnuta funkcija koja podsjeća na sortiranje, ali se koristi putem poziva na popisu:
Sve razmatrane operacije najčešće se primjenjuju na popise i osnovne su. Ali postoje visoko specijalizirane metode. Na primjer, .copy (), koja stvara plitku kopiju objekta, i .count (), koji vraća broj elemenata. Da biste vidjeli cijeli popis funkcija dostupnih u Pythonu koji su primjenjivi na objekt popisa, morate unijeti pomoć () ili dir () u tumač.