Python programiranje. Popis u Pythonu: osnovne operacije

1. 3. 2020.

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. python popis

Svojstva i značajke objekta s popisom

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:

  • To su skupine objekata s uređenim pozicioniranjem s lijeva na desno.
  • Popisi omogućuju pristup pomicanjem, odnosno brojem objekta.
  • U Pythonu, popisi su heterogeni. Redoslijed može uključivati ​​objekte različitih vrsta, uključujući brojeve, karte, nizove, datoteke.
  • Popisi su kategorizirani kao promjenjivi objekti s neograničenim brojem gniježđenja.

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. python string

Osnovne operacije slijeda

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:

  • pristup elementima pomoću cjelobrojnih indeksa __getitem __ ();
  • određivanje duljine __len __ ();
  • ulančavanje pomoću operatora "+";
  • extract slice [:].

Popisi u akciji

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:

  • >>> my_list = ["jedan", "2", "tri") # izradi novi popis;
  • >>> my_list;
  • ["Jedan", "2", "tri";
  • >>> len (my_list);
  • 3 # interpreter vraća dužinu;
  • >>> my_list + [1, 2, 3] # izvršiti ulančavanje;
  • ["Jedan", "2", "tri", 1, 2, 3];
  • >>> ponavljanje * 2 #;
  • ["Jedan", "2", "tri", "jedan", "2", "tri"].

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:

  • >>> [1, 2, 3] + 3.14 # TypeError: može samo spojiti popis (ne "float") na popis.

Za dodavanje niza i popisa u Pythonu potrebno je izvršiti preliminarnu konverziju za str tip:

  • >>> second_list = list ("string") # transformiraj objekt "string";
  • >>> second_list;
  • ["S", "t", "p", "o", "k", "a"] # interpreter vraća popis;
  • >>> second_list + moj_list;
  • ["S", "t", "p", "o", "k", "a", "jedan", "2", "tri"].

Kada stvarate popis u Pythonu, morate se pridržavati strogih pravila sintakse. Svaki objekt mora biti zatvoren u uglate zagrade, a stavke odvojene zarezima. popis sortiranja pythona

Što su generatori iteracije i popisa?

Ponavljanje je proces ponavljanja. U kontekstu popisa, ovo je alternativni napredak kroz elemente objekta koji se ponavlja. Na primjer:

  • >>> 3 u [1, 2, 3] # provjerite je li navedena stavka uključena;
  • istina;
  • >>> za x u [1, 2, 3, 4]: # izvršite iteraciju;
  • print (x);
  • 1;
  • 2;
  • 3;
  • 4.

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:

  • >>> List_1 = [c * 4 za c u "SPAM"] # tako izgleda generacija;
  • >>> Popis_1;
  • [“SSSS”, “PPPP”, “AAAA”, “MMMM”];
  • >>> List_2 = [];
  • >>> za c u "SPAM": # slična naredba generacije;
  • List_2.append (c * 4) # list.append () dodaje nove elemente;
  • >>> List_2;
  • [“SSSS”, “PPPP”, “AAAA”, “MMMM”].

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." generator popisa pythona

Izvlačenje rezova i pristup indeksu

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:

  • >>> List1 = ["spam", "Spam", "SPAM!"]
  • >>> List1 [2] # pomak počinje od nule
  • "SPAM!"
  • >>> List1 [-2] # negativni pomak: broji se s desne strane
  • "Spam"
  • >>> Popis [1:] # operacija izvlačenja slice vraća dijelove objekta
  • ["Spam", "SPAM!"]

Kako funkcionira ekstrakcija kriške i njene mogućnosti

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:

  • >>> my_list = ["jedan", "osam", "sto"];
  • >>> my_list [0: 2] = ["devedeset i osam", "devedeset i devet";
  • >>> my_list;
  • ["Devedeset i osam", "devedeset devet", "sto".

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. popis značajki pythona

Specifične metode objekata popisa vrsta

Većina metoda ili funkcija ima za cilj izravno mijenjanje objekta. Najčešći je .append (). Dodaje stavke na kraj popisa:

  • >>> my_L = [“Ja”, “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", "Python"].

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:

  • >>> L = ["abc", "ABD", "aBe"];
  • >>> L.sort (key = str.lower, reverse = True) # Mijenja smjer sortiranja;
  • >>> L;
  • ["ABe", "ABD", "abc"].

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. stvaranje popisa pythona

Metode zamki

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:

  • >>> my_list = [1, 100, 56, 34, 2, 99];
  • >>> double_list = my_list.sort ();
  • >>> double_list # tumač ne vraća ništa;
  • >>> my_list;
  • [1, 2, 34, 56, 99, 100];
  • >>> double_list = sortirano (my_list);
  • >>> double_list;
  • [1, 2, 34, 56, 99, 100] # interpreter vraća sortiranu kopiju objekta.

Dodatne metode

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:

  • >>> L;
  • [4, 3, 2, 1];
  • >>> popis (obrnuto (L)) # ugrađena funkcija sortiranja obrnutim redoslijedom;
  • [1, 2, 3, 4].

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č.