Programiranje na Pythonu. Popis u Pythonu: Osnovne operacije

Python 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 obraditi veliku količinu informacija i struktura podataka bilo koje složenosti.

Svojstva i značajke popisa objekata

Popisi su fleksibilni i promjenjivi tip podataka. Mogu biti bilo koje duljine i sadržavati neograničenu količinu informacija. Kao elementi niza dopušteno je koristiti nizove, jednostavne i valjane brojeve, rječnike. Svaki popis varijabli u Pythonu može se pojedinačno obraditi, izbrisati ili zamijeniti. Popis sadrži određeni skup svojstava koja ih razlikuju od drugih tipova podataka:
  • To su skupine objekata s uređenim pozicioniranjem s lijeva na desno.
  • Popisi omogućuju pristup ofsetu, odnosno broju objekta.
  • Pythonovi popisi imaju heterogenost. Redoslijed može uključivati ​​objekte različitih vrsta, uključujući brojeve, preslikavanja, linije, datoteke.
  • Popisi spadaju u kategoriju promjenjivih objekata s neograničenim brojem gniježđenja.
  • Popisi se mogu zamijeniti za povezane strukture podataka. No, u stvari, to su reference na kontejnere na objekte, a ne na njihove kopije. Oni su poput adresara. Sve stavke na popisu upućuju na mjesto na kojem se nalazi željeni objekt. Na ovom popisu Python je sličan nizovima jezika C, ali je implementiran u interpreteru.

    Osnovne operacije sekvenci

    Formalno postoje tri kategorije u jeziku. Ovi brojevi suprikaz i redoslijed, koji uključuju popis vrsta. Za svaku skupinu postoji opći skup operacija. Na primjer, dodajte, oduzmite i pomnožite za numeričke objekte ili pristup ključevima rječnika.


    Sekvence također imaju svoje karakteristične operacije:
  • pristup elementu pomoću cjelobrojnih indeksa __getitem __ ();
  • Određivanje duljine __len __ ();
  • ulančavanje pomoću operatora "+";
  • Izdvajanje rezova [:].
  • Popisi u akciji

    Popisi imaju širi raspon značajki od nizova u Pythonu. Ovo je moćan razvojni alat s nizom specifičnih funkcija, primjenjivih samo na popis tipova. Kako izgleda popis metoda u praksi:
  • moj popis = [jedan, dva, tri] # stvaranje novog popisa;
  • moj popis;
  • ["jedan", "2", "tri"];
  • len (moji oglasi);
  • 3 # tumač vraća dužinu;
  • moj popis [+ 1, 2, 3] # ulančavanje;
  • [jedan, dva, tri, jedan, dva, tri];
  • moj popis * 2 # ponoviti;
  • [jedan, dva, tri, jedan, dva, tri].
  • Pri izvođenju ulančavanja na svakoj strani, znak "+" mora imati isti redoslijed, inače će tumač izdati poruku o pogrešci:
  • [1, 2, 3] + 314 # TypeError: može samo spojiti popis (ne float ») na popis.
  • Da bi se sastavio niz i popis u Pythonu, morate izvesti prethodnu transformaciju tipa str:
  • second_list = list ("string") # pretvorba objekta "string";
  • drugi popis;
  • ["c", "t", "p", "o", "k", "a"] # tumač vraća popis;
  • second_list + my_list;
  • ["c", "t", "p", "o", "k", "a","Jedan", "2", "tri"].
  • Prilikom kreiranja popisa u Pythonu morate slijediti stroga pravila sintakse. Svaki objekt mora biti zatvoren u uglate zagrade, a elementi su odvojeni zarezima.

    Što su generatori iteracije i popisa

    Ponavljanje je proces ponavljanja. U kontekstu popisa - to je progresivni napredak na elementima ponavljanog objekta. Na primjer:
  • 3 u [1, 2, 3] # će provjeriti je li navedena stavka uključena;
  • Istina;
  • za x u [1, 2, 3, 4]: # će izvesti iteraciju;
  • print (x);
  • 1;
  • 2;
  • 3;
  • 4.
  • Ako je iteracija jednostavno premosnica svakog elementa, tada je generiranje proces stvaranja novog objekta popisa vrsta. U Pythonu su generatori popisa slični petljama za, ali rade brže i izgledaju kao sintaksa mnogo lakše:
  • List_1 = [c * 4 za c u "SPAM"] # izgleda kao generacija;
  • Popis_1;
  • ["SSSS", "PPPP", "AAAA", "MMMM"];
  • ​​
  • List_2 = [];
  • za c u "SPAM": # slično naredbi generacije;
  • List_2.append (c * 4) # list.append () dodaje nove stavke;
  • Popis_2;
  • ["SSSS", "PPPP", "AAAA", "MMMM"].
  • U oba primjera, rezultat je identičan. No, uz korištenje generatora, kod postaje mnogo kraći i lakši. Ovaj pristup je u potpunosti u skladu sa Zen Zen od Pythona. To je zen, ili kod jezika, u kojem je jedna od točaka izjavila: "Lakše je lakše se sklopiti."

    Izrezivanje i pristup indeksu

    Ove dvije operacije su potpuno slične i omogućuju vam obradu pojedinačnih stavki na popisu u Pythonu. Ali postoji značajna razlika. Kao rezultat indeksacije, vraća se poseban dio slijeda. Isječak rezanja stvara novi objektpopis vrsta:

  • List1 = [spam, spam, spam!]
  • List1
  • # offset odbrojavanje počinje od nule
  • "SPAM"!
  • List1 [-2] # negativni pomak: izveden s desne strane
  • "Spam"
  • Popis [1:] # operacija iskopavanja vraća dijelove objekta
  • [«Spam», «SPAM!»]
  • Kako djeluje izvlačenje reza i njegovih mogućnosti? Kao rezultat, vraća isti popis, samo iz druge varijable. Ova operacija je slična dodjeli prema indeksu u jeziku C. Interpreter zamjenjuje staru referencu na novi specificirani objekt u smjeni:
  • my_list = [jedan, osam, sto];
  • moj popis [0: 2] = [devedeset osam, devedeset i devet];
  • moji oglasi;
  • ["devedeset i osam", "devedeset i devet", "sto".
  • Ovo je prilično složena operacija koja se odvija u nekoliko faza. Najprije, tumač briše sve elemente s lijeve strane operatora. U ovom primjeru to je "jedan" i "osam". Zatim se svi objekti s desne strane operatera stavljaju u popis počevši od lijevog ruba. Opisani postupak osigurava fleksibilan rad s rezovima. Broj se briše, a dodane stavke mogu biti različite. Operacija je prikladna za uklanjanje i zamjenu objekata, kao i za proširenje popisa. Ovo je moćan način za obradu koda. No, programeri ga rijetko koriste u praksi, preferirajući jednostavnija uputstva za umetanje, pop i uklanjanje.

    Posebne metode objekata popisa vrsta

    Većinametode, ili funkcije usmjerene na izravno mijenjanje objekta. Najčešći je .append (). On dodaje stavke na kraj popisa:
  • my_L = ["I", "ljubav", "program", "on"];
  • my_L;
  • ["I", "ljubav", "program", "on"];
  • my_L.append ("Python") # će dodati element naveden u zagradama;
  • my_L;
  • ["I", "ljubav", "program", "on", "piton"].
  • Druga, jednako popularna metoda naziva se sort (). Dizajniran za sortiranje popisa u Pythonu. Metoda izvršava promjenu elemenata korištenjem operatora standardne usporedbe. Također se može koristiti za složenije zadatke pomoću nazvanih argumenata:
  • L = ["abc", "ABD", "aBe"];
  • Raznolikost L. (key = str.lower, reverse = True) # Mijenja smjer sortiranja;
  • L;
  • ["ABe", "ABD", "abc"].
  • U primjeru, sintaktički konstrukt "name = value" korišten je za prosljeđivanje konfiguracijskih parametara. Argument ključa omogućuje vam da odredite vlastite parametre za usporedbu. U ovom slučaju, to su elementi malog slova. Obrnuto znači "naprotiv", to jest, opadajući, a ne rastući.

    Metode podvodnog kamenja

    Kada radite s ovim metodama, morate uzeti u obzir sljedeće značajke: .sort () .append () modificira popis, ali ga ne vraća. Dizajniraj moj popis = List.sort () nema smisla i rezultata. Zato su, u najnovijim verzijama jezika, programeri uveli funkciju sorted (), koja popis uzima kao argument:

  • moj popis = [1, 100, 56, 34, 2, 99];
  • dubl_scripts = my_list.sort ();
  • dubl_spesk # tumač ne vraća ništa;
  • moji oglasi;
  • [1, 2,34, 56, 99, 100];
  • dubl_scripts = sortirano (mylists);
  • dubl_skripti;
  • [1, 2, 34, 56, 99, 100] # tumač vraća sortiranu kopiju objekta.
  • Dodatne metode

    Python nudi dodatne metode za specijaliziranu obradu popisa. Na primjer, za promjenu redoslijeda sljedećih stavki pomoću obrnuto. Proširene i pop metode za lijepljenje više stavki do kraja ili njihovo uklanjanje. Postoji i obrnuta funkcija koja podsjeća na sortiranu, ali korištenu kroz popis poziva:
  • L;
  • [4, 3, 2, 1];
  • popis (obrnuto (L)) # ugrađena funkcija sortiranja obrnutim redoslijedom;
  • [1, 2, 3, 4].
  • Sve razmatrane transakcije najčešće se koriste za popise i osnovne su. Ali postoje visoko specijalizirane metode. Na primjer, .copy (), koja stvara površnu kopiju objekta, i .count (), koji vraća broj stavki. Da biste vidjeli sve Python dostupne liste funkcija primjenjivih na objekt popisa, trebate unijeti pomoć () ili dir () u tumač.

    Povezane publikacije