python list create
U ovom uputstvu za Python List istražit ćemo načine za stvaranje, pristup, rezanje, dodavanje / brisanje elemenata na popise Pythona koji su vjerojatno jedan od najkorisnijih tipova podataka:
Python uključuje 4 vrste podataka o zbirci kako je spomenuto u nastavku:
- Popis
- Postavi
- Rječnik
- Korijen
U ovom uputstvu detaljno ćemo razgovarati o Listu i njegovim raznim operacijama. U Pythonu je popis struktura podataka ili je poput niza koji se koristi za pohranu više podataka odjednom.
=> Ovdje istražite seriju treninga za Python
Ako imate iskustva s bilo kojim drugim programskim jezicima kao što su Java, C, C ++ itd., Tada ćete biti upoznati s konceptom nizova. Popis je gotovo isti kao nizovi.
Što ćete naučiti:
- Što su Python popisi
- Više o popisima u Pythonu
- Zaključak
Što su Python popisi
U Pythonu je popis vrsta podataka , koji pohranjuje zbirku različitih predmeta (predmeta) u uglatu zagradu ([]). Svaka je stavka na popisu odvojena zarezom (,) s prvom stavkom na indeksu 0.
Bilješka :Dalje, svi primjeri u ovom vodiču izravno će se izvoditi iz Python ljuske, ako nije drugačije navedeno.
Ispod je primjer popisa s 5 stavki.
>>> l = ['what','who','where','when','how'] >>>l ['what','who','where','when','how']
U gornjem primjeru možemo vidjeti da popis ima Nizanje predmeta kao stavke, a svaka je stavka odvojena zarezom.
Karakteristike popisa Python
Prije nego što pogledamo kako možemo manipulirati stavkama na popisu, pogledajmo neke od karakteristika zbog kojih su Python popisi favorizirani.
Python popisi su slijed kontejnera
Za razliku od ravnih sekvenci ( niz , niz.niz , prikaz memorije , itd.) koji mogu sadržavati samo predmete jedne vrste, popis je a slijed kontejnera koji mogu sadržavati predmete jedne vrste kao i različitih vrsta.
Primjer s predmetima jedne vrste
Otvorimo našu python ljusku i definirajmo popis brojeva.
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']
Gornji primjer prikazuje popis predmeta iste vrste, u ovom slučaju tipa niz (str) .
Primjer s predmetima različitih vrsta
Otvorimo našu Python ljusku i definirajmo drugu verziju popisa brojeva.
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]
Gornji primjer prikazuje popis predmeta različitih vrsta. Vrste su niz , cijeli broj, i plutati .
// a sketch showing the list of items and their types as annotation
Popis Python može sadržavati i sve objekte kao što su funkcije , razreda , modula , popisa , torte, i mnogo više.
Otvorite uređivač i zalijepite donji kod:
def test(): '''This is a function''' print('This is a test') if __name__ == '__main__': print(test) # return instance object of function 'test' instance = type(test) print(instance) # create a list of colors colors = ['red','blue','green'] print(colors) # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print(my_list)
Izlaz
Python popisi su poredane sekvence
Python popis je uređena zbirka objekata. Položaj svake stavke na popisu je vrlo važan. U stvari, dva popisa s istim stavkama nisu ista ako redoslijed u kojem su stavke postavljene nije isti.
>>> ['a','b','c','d'] == ['a','c','b','d'] False
Ova karakteristika popisa Python omogućuje pristup njegovim stavkama indeksiranjem i rezanjem (o tome više kasnije).
Python popisi su promjenjive sekvence
Popisi Pythona mogu se mijenjati. Ali što je promjenjivi objekt? To je jednostavno objekt koji se može izmijeniti nakon što je stvoren. Primjeri ostalih promjenjivih sekvenci su rječnik , niz.niz , zbirke.deque .
Zašto promjenjiv? Nizovi poput popisa koriste se za složene operacije, pa ima smisla da bi trebali promijeniti , rasti , se smanjiti , ažuriranje itd . To je moguće samo s promjenjivošću. Promjenjivost nam također omogućuje izmjenu postojećih popisa (više o tome).
Provjerimo promjenjivost popisa donjim primjerom.
Samo otvorite uređivač i zalijepite kod:
def veryfiy_mutability(): # create a list l = [9,0,4,3,5] print('Display before modifying') print('List: {}
Id: {}'.format(l,id(l))) # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print('Display after modifying') print('List: {}
Id: {}'.format(l,id(l))) if __name__ == '__main__': veryfiy_mutability()
Izlaz
Iz gornjeg rezultata primijetili smo da se popis prije i nakon izmjena razlikuje. Međutim Iskaznica vrijednost je ista. The Iskaznica vrijednost ovdje predstavlja adresu objekta u memoriji - koja se dobiva s Pythonom iskaznica() .
To nam govori da je, iako se sadržaj popisa promijenio, to i dalje isti objekt. Stoga ovo zadovoljava našu definiciju: „ To je jednostavno objekt koji se može izmijeniti nakon što je stvoren '
Bilješka :U gornjem primjeru koristili smo indeksiranje (više o tome) za izmjenu popisa.
Manipuliranje Python popisima
S Pythonovim popisima, nebo je naša granica. Postoji bezbroj stvari koje možemo učiniti s popisima poput dodavanje , brisanje , indeksiranje , rezanje , provjera članstva , i mnogo više. Također, Python ima ugrađene funkcije koje pomažu učiniti manipuliranje popisima uzbudljivijim.
U ovom ćemo odjeljku pogledati neke često korištene operacije popisa.
Stvaranje popisa
Da biste stvorili popis, jednostavno stavite brojne stavke ili izraze u uglatu zagradu odvojenu zarezima.
[expression1, expression2,...,expresionN]
>>> l = [4,3,5,9+3,False] >>> l [4, 3, 5, 12, False]
Također, Python ima ugrađeni objekt zvan popis () koji se mogu koristiti za stvaranje popisa.
list( sequence )
>>> l = list() # create an empty list >>> l []
Piton popis () može uzimati vrste sekvenci i pretvarati ih u popise. Ovo je tipičan način pretvaranja korice u popis.
>>> t = (4,3,5) # tuple >>>l = list(t) # convert into list [4,3,5]
U gornjem primjeru koristili smo vrstu podataka Korijen . Sličan je popisu, ali za razliku od popisa, nepromjenjiv je i stavke su zatvorene u zagrade.
Još jedno sredstvo pomoću kojeg možemo stvoriti popis je pomoću poimanja razumijevanja koja ima sljedeću sintaksu.
[expression for item in sequence]
>>> [i**2 for i in range(4)] [0, 1, 4, 9]
Vrijedno je napomenuti da se Python popisi prenose referencom. Što znači, dodjeljivanje popisa pružit će identitet njegove memorijske lokacije. Pogreška koju mnogi početnici čine je stvaranje popisa na ovaj način.
>>> l1 = l2 = [4,3] # wrong way to create separate list objects >>> l1 [4,3] >>> l2 [4,3]
Ovdje bismo mogli pomisliti da smo stvorili dva različita popisa, ali uistinu smo upravo stvorili jedan. Pokažimo to modificirajući jednu od varijabli.
>>> l1[0] = 0 >>> l1 [0,3] >>> l2 [0,3]
Primjećujemo da izmjena jedne varijable mijenja drugu. To je zato što obje varijable l1 i l2 imaju isti identitet lokacije memorije, pa obje usmjeravaju na isti objekt.
Dodavanje stavki na popis
Python ima mnogo načina za dodavanje elemenata na svoj popis. Najčešći je način dodati() metoda. Ostali su načini pomoću proširiti () metoda. Indeksiranje i rezanje (o njima više kasnije) vjerojatnije se koriste za zamjenu stavki na popisu.
# 1) Primjenom metode append ()
Ova metoda uzima jednu stavku i dodaje je na kraj popisa. Ne vraća novi popis, već ga samo mijenja na mjestu (zahvaljujući njegovoj promjenjivosti).
>>>l = list() # create empty list >>> l [] >>> l.append(4) # add an integer >>> l [4] >>> l.append([0,1]) # add a list >>> l [4, [0, 1]] >>> l.append(4 >> l [4, [0, 1], True] >>> l.append(x for x in range(3)) # add result of a tuple comprehension >>> l [4, [0, 1], True, ]
Nekoliko stvari koje treba primijetiti iz gornjeg primjera:
- Ovdje mogu biti izrazi, tipovi podataka, sekvence i mnogi drugi.
- The dodati() metoda ima vremensku složenost (0) 1. Znači da je konstantna.
# 2) Korištenjem metode extension ()
Ova metoda uzima iterable kao svoj argument i dodaje sve stavke s njega na kraj popisa. Ova se metoda uglavnom koristi kada želimo dodati pojedine stavke niza na popis
U osnovi, proširiti () metoda prevlači svoj argument i dodaje svaku stavku na popis. Baš kao i metoda append (), ona ne vraća novi popis već mijenja popis na mjestu.
>>> l1 = [3,2,5] # create a list of items >>> l1 [3, 2, 5] >>> l2 = [0,0,-1] # create a second list of items >>> l2 [0, 0, -1] >>> str = 'hello' # create a string(iterable) >>> str 'hello' >>> l1.extend(l2) # append all items from l2 to l1 >>> l1 [3, 2, 5, 0, 0, -1] >>> l1.extend(str) # append all items from str to l1 >>> l1 [3, 2, 5, 0, 0, -1, 'h', 'e', 'l', 'l', 'o']
Nekoliko stvari koje valja primijetiti iz gornjeg primjera:
- Niz je ponovljiv, pa tako i naš proširiti () metoda će se ponavljati preko svojih znakova.
- The proširiti () metoda ima vremensku složenost od (0) K gdje je K duljina argumenta.
Pristup stavkama s popisa
Indeksiranje i rezanje su najčešća sredstva koja se koriste za pristup popisima. Također možemo pristupiti stavkama na popisu s petljama poput za petlju .
# 1) Indeksiranje
Popis Pythona koristi numeriranje na osnovi nule sustav. Znači, sve su njegove stavke jedinstveno identificirane indeksnim brojem koji počinje od 0 do n-1, gdje je n duljina popisa.
Razmotrite popis u nastavku:
>>> colors = ['red','blue','green','yellow','black'] # create list >>> colors ['red','blue','green','yellow','black'] >>> len(colors) # get list length 5
Tablica u nastavku prikazuje njihove odgovarajuće indekse u numeriranje nula na temelju popisa.
Artikal | neto | plava | zeleno | žuta boja | crno |
---|---|---|---|---|---|
pop () | Da biste izbrisali / uklonili element sa zadnjeg na popisu. | ||||
Indeks | 0 | 1 | dva | 3 | 4 |
Iz gornje tablice vidimo da je prva stavka ('crvena') na indeksnom položaju 0, a zadnja stavka ('crna') na indeksnom položaju 4 (n-1) gdje je n = 5 (duljina predmeta boje).
Kao što smo vidjeli u karakterističnom odjeljku gore, Python popisi su poredane sekvence. To nam omogućuje da pomoću indeksiranja lako pristupimo i manipuliramo njezinom stavkom.
Upotrijebimo indeksiranje za pristup stavkama na određenim indeksima gore stvorenog objekta boja.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[0] # access item at index 0 'red' >>> colors[4] # access item at index 4 'black' >>> colors[9] # access item at index 9 Traceback (most recent call last): File '', line 1, in IndexError: list index out of range
Bilješka :Posljednja gore navedena izjava pokušava pristupiti stavci na položaju indeksa 9 s objekta popisa duljine 5. Na popisu Python, pristup stavci u indeksu koji ne postoji podići će Pogreška indeksa iznimka.
Važan koncept indeksiranja je da možemo koristiti negativno indeksiranje, tj. Možemo pristupiti stavkama popisa obrnuto, počevši od -1 za posljednju stavku i završavajući na -n za posljednju stavku gdje je n duljina objekta popisa.
U gornjoj tablici, ako koristimo negativno indeksiranje, izgledat će kao što je prikazano u nastavku:
Artikal | neto | plava | zeleno | žuta boja | crno |
---|---|---|---|---|---|
Indeks | -5 | -4 | -3 | -dva | -1 |
Upotrijebimo negativno indeksiranje za pristup nekim stavkama gore stvorenog objekta boje.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[-1] # access item and index -1(first item counting backward) 'black' >>> colors[-3] # access item at index -3(third item counting backward) 'green' >>> colors[-5] # access item at index -5 (last item counting backward) 'red'
# 2) Rezanje
Za razliku od indeksiranja koje vraća samo jednu stavku, rezanje s druge strane može vratiti niz predmeta.
Ima sljedeću sintaksu:
L[n:m]
Kada je n indeksni broj gdje odrezak započinje (zadane vrijednosti 0), a m ekskluzivni indeksni broj gdje rezni dio završava (zadana dužina-1). Odvojene su dvotočkom (:)
Razmotrite donji primjer koji koristi rezanje za pristup stavkama na određenim indeksima gore stvorenog objekta boja.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[0:2] # get first two items ['red', 'blue'] >>> colors[1:4] # get items at index 1,2 and 3 ['blue', 'green', 'yellow'] >>> colors[2:len(colors] # get items from index 2 to the last item ['green', 'yellow', 'black'] >>> colors[3:4] # get one item at index 3. Same as colors[3] ['yellow'] >>>
U sintaksi L [n: m], n je zadano na 0, a m prema duljini popisa. Dakle, u primjeri 1 i 3 gore bismo mogli izostaviti n i m kao boje [: 2], odnosno boje [2:]. Ili [:] koji u ovom slučaju vraća plitku kopiju cijelog objekta popisa.
Također možemo koristiti negativne indeksne brojeve tijekom rezanja popisa. To se obično koristi kada popisu želimo pristupiti obrnuto.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[-3:-2] ['green'] >>> colors[-2:] ['yellow', 'black']
Također, postoji i treći parametar koji se naziva rezanje korak (s). Definira koliko se stavki treba pomicati naprijed nakon što se prva stavka preuzme sa popisa. Zadana vrijednost je 1.
L[n:m:s]
Koristeći isti gore navedeni popis boja, upotrijebimo treći parametar kriške za pomicanje 2 koraka.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[0:3:2] ['red', 'green']
# 3) Korištenje petlji
Petlje se uglavnom koriste za pristup stavkama na popisu radi manipulacije stavkama. Dakle, u slučaju da želimo operirati na stavkama s popisa, možemo koristiti za petlju za pristup predmetima i njihovo predavanje radi operiranja.
Recimo, želimo brojati broj slova za svaku stavku. Možemo koristiti za petlju da to postigne.
Otvorite uređivač i zalijepite donji kod:
def count_letters(l): count = {} # define a dict to hold our count for i in l: # loop through the list count[i] = len(i) # for each item, compute its length and store it in the dict return count # return the count if __name__ == '__main__': colors = ['red', 'blue', 'green', 'yellow', 'black'] print(count_letters(colors))
Izlaz
Za kraj ovog odjeljka, pogledajmo dvije zanimljive stvari koje se mogu učiniti rezanjem.
-
Napravite plitku kopiju popisa
To je osnovni način korištenja kopirati() metoda objekta popisa ili ugrađena funkcija kopija.kopija . Međutim, to se može postići rezanjem.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors_copy = colors[:] # make a shallow copy >>> colors_copy ['red', 'blue', 'green', 'yellow', 'black'] >>> colors_copy[0] = 0 # modify item at index 0 by changing its value to 0 >>> colors_copy # the copied version now has 0 at index 0 [0, 'blue', 'green', 'yellow', 'black'] >>> colors # the original version is unchanged ['red', 'blue', 'green', 'yellow', 'black'] >>>
-
Obrni popis
Osnovni način je korištenje obrnuti metoda objekta popisa ili ugrađena funkcija obrnuto () . Međutim, to se može postići rezanjem.
>>> colors # original list object ['red', 'blue', 'green', 'yellow', 'black'] >>> colors[::-1] # returns a reversed shallow copy of the the original list ['black', 'yellow', 'green', 'blue', 'red'] >>>
Uklanjanje predmeta sa popisa
Kako na popis možemo dodati što više predmeta, oni se također mogu ukloniti s popisa. Tri su načina na koje se predmeti mogu ukloniti:
# 1) Korištenje del izjave
Ima sljedeću sintaksu:
del target_list
Ciljni popis ( ciljni_popis ) može biti cijeli popis (u slučaju da želite izbrisati popis) ili stavka ili stavke na popisu (u ovom slučaju koristite indeksiranje ili rezanje).
Razmotrite primjer u nastavku .
Recimo, želimo izbrisati neke stavke s gore stvorenog popisa boja.
>>> colors # original list ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy = colors[:] # make a shallow copy to work on >>> del c_copy[0] # delete item at index 0 >>> c_copy ['blue', 'green', 'yellow', 'black'] >>> del c_copy[0:2] # delete items at index 0 and 1(slicing) >>> c_copy ['yellow', 'black'] >>> del c_copy[:] # delete all items in a list. Same as ‘c_copy.clear()’ [] >>> del c_copy # delete the list object >>> c_copy # access object that doesn't exist Traceback (most recent call last): File '', line 1, in NameError: name 'c_copy' is not defined >>>
Bilješka :Izjava del briše na mjestu tj. , izmijenit će izvorni objekt popisa, a ne vraćati novi objekt popisa.
# 2) Korištenje popisa.remove (x)
Uklanja prvu stavku s popisa čija je vrijednost jednaka x . Pojavljuje ValueError ako nema takve stavke.
Ova se metoda uglavnom koristi za uklanjanje stavki s popisa po imenu, za razliku od del izraza koji koristi indeksiranje i rezanje.
>>> colors # original list ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy = colors[:] # create shallow copy to work on >>> c_copy ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy.remove('blue') # remove first item with name 'blue' >>> c_copy ['red', 'green', 'yellow', 'black'] >>> c_copy.remove('blue') # try to remove item that doesn't exist Traceback (most recent call last): File '', line 1, in ValueError: list.remove(x): x not in list >>>
Bilješka :Objekt popisa ukloniti() metoda briše na mjestu tj. , izmijenit će izvorni objekt popisa, a ne vraćati novi objekt popisa.
# 3) Korištenje list.pop ([i])
Uklanja i vraća stavku na zadanoj poziciji u objektu popisa. Ako nije naveden i (indeks), uklanja i vraća zadnju stavku s popisa.
Bilješka :Uglata zagrada oko i iznad ne znači popis i, već znači da je i neobavezno.
>>> colors # original list ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy = colors[:] # make a shallow copy to work on >>> c_copy ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy.pop(3) # pop out the item at index 3 'yellow' >>> c_copy ['red', 'blue', 'green', 'black'] >>> c_copy.pop() # pop out the last item in the list 'black' >>> c_copy ['red', 'blue', 'green'] >>>
Bilješka: Popis. pop ([i]) metoda briše na mjestu tj. , izmijenit će izvorni objekt popisa, a ne vraćati novi objekt popisa. Također, vraća stavku uklonjenu s popisa
Zamjena predmeta s popisa
Zamjena predmeta je prilično jednostavna. U jednom od gornjih odjeljaka vidjeli smo indeksiranje i rezanje. Njima se može pristupiti i ukloniti stavke s popisa.
# 1) Zamijenite pomoću indeksiranja
L[index] = value
>>> colors # original list ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy = colors[:] # make a shallow copy to work on >>> c_copy ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy[0] = 'brown' # replace item at index 0 with 'brown' >>> c_copy ['brown', 'blue', 'green', 'yellow', 'black'] >>>
# 2) Zamjena pomoću rezanja
L[n:m] = value
Bilješka : Vrijednost treba biti iterabilan ili inače TipError podignut će se iznimka.
>>> colors # original list ['red', 'blue', 'green', 'yellow', 'black'] >>> c_copy = colors[:] # make a shallow copy to work on >>> c_copy[0:2] = ['brown'] # replace items at index 0 and 1 with 'brown' >>> c_copy ['brown', 'green', 'yellow', 'black'] >>> c_copy[1:3] = ['white','purple'] # replace items at index 1 and 2 with 'white' and 'purple' >>> c_copy ['brown', 'white', 'purple', 'black'] >>> c_copy[1:4] = ['white','purple'] # replace items at index 1,2 and 3 with 'white' and 'purple'. Here we replace 3 items with 2 items >>> c_copy ['brown', 'white', 'purple'] >>>
Često postavljana pitanja
P # 1) Što je popis popisa u Pythonu?
Odgovor: Popis popisa u Pythonu je popis koji sadrži popise kao svoju stavku.
Na primjer
[['a','b'],['c','d']]
Također se može označiti kao a ugniježđeni popis .
P # 2) Kako prijaviti popis u Pythonu?
Odgovor: U Pythonu se popis može deklarirati na dva načina. Bilo korištenjem ugrađene funkcije popis() ili upotrebom nosača zagrada []. popis() uzima iterable i [] uzima stavke bilo koje vrste odvojene zarezom.
[pytyon]>>> list('hello') # a string is iterable ['h', 'e', 'l', 'l', 'o'] >>> [3,4,5,23] # numbers are separated by comma [3, 4, 5, 23] >>> [/python]
P # 3) Možete li staviti popis u popis Python?
Odgovor: Da, možemo staviti popis unutar popisa. Zapravo, popis je slijed spremnika koji uzima stavke bilo koje vrste podataka.
P # 4) Što list () radi u Pythonu?
Odgovor: popis ( ) je ugrađena funkcija u Pythonu koja stvara objekt popisa. Kao argument uzima iterable.
>>> list((3,2,4)) # The iterable object here is a tuple. [3, 2, 4] >>>
P # 5) Može li popis Python sadržavati različite vrste?
Odgovor: Popis je slijed spremnika koji uzima stavke bilo koje vrste podataka ( popis , korijen , cijeli broj , plutati , žice itd.)
Više o popisima u Pythonu
Što je struktura podataka?
Računala se koriste za pohranu ogromnog broja podataka ili za obradu ogromnog broja podataka velikom brzinom i točnošću. Stoga je najbolje trajno pohranjivati podatke za brzi pristup.
Iako se obrada podataka događa, trebala bi se dogoditi u najkraćem mogućem roku bez gubitka točnosti. Strukturu podataka koristimo za organizirani rad s podacima i pohranu podataka u memoriju radi obrade.
Budući da je Python programski jezik na visokoj razini i protumačen, vrlo je važno koristiti strukturu podataka u Pythonu.
Što je Lista?
Popis je struktura podataka koja se koristi za pohranu više podataka odjednom.
Podaci pohranjeni na popisu su homogeni i to ih zauzvrat čini najsnažnijom značajkom popisa u Pythonu. Na jedan popis možemo pohraniti više podataka različitih vrsta podataka kao što su String, Integers i Objekti.
Popis se može mijenjati u Pythonu, pa se podaci mogu mijenjati u bilo kojem trenutku, čak i nakon stvaranja. Popisi su vrlo moćni za implementaciju stogova i redova u Pythonu.
Kao što je ranije spomenuto, popis pohranjuje podatke u uređenom slijedu, a podacima pohranjenim na popisu pristupa se pomoću njihovog indeksa, a za popis indeks će uvijek početi od Nula. Svaki element ima određeno mjesto na popisu i svim tim podacima pristupa se uz pomoć indeksa.
Na popisu možemo više puta pohraniti istu vrijednost i svaki će se podatak smatrati zasebnim i jedinstvenim elementom. Popise je najbolje za pohranu podataka i ponoviti ih kasnije.
Stvaranje popisa
Podaci na popisu pohranjuju se odvojenim zarezom i zatvaraju u uglatu zagradu ([]). Stavke na popisu ne moraju biti iste vrste.
Syntax: List = [item1, item2, item3]
Primjer 1:
List = [ ]
Primjer 2:
List = [2, 5, 6.7]
Primjer 3:
List = [2, 5, 6.7, ‘Hi’]
Primjer 4:
List = [‘Hi’, ‘Python’, ‘Hello’]
U gornjim primjerima možemo primijetiti da imamo pohranjene stavke različitih vrsta podataka s odvojenim zarezima, 2 i 5 su tipa Integer, 6.7 je tipa float, a 'Hi' je tipa String, sve su ove stavke zatvorene u popis i to ga čini Popisom.
Možemo proglasiti i prazan popis. Također možemo deklarirati popis unutar drugog popisa i nazivamo ga ugniježđenim popisom.
Primjer 5:
List = [‘Hi’, [2, 4, 5], [‘Hello’]]
U gornjem primjeru možete primijetiti da je popis deklariran unutar drugog popisa.
Pristup vrijednostima na popisu
Postoje različiti načini putem kojih možemo pristupiti stavkama koje se nalaze na popisu u Pythonu.
Uz pomoć indeksa možemo pristupiti elementima popisa. Indeks počinje od 0, a indeks uvijek treba biti cijeli broj. Ako koristimo indeks koji nije cjelobrojni poput float, to će rezultirati TypeError.
Primjer 1:
List = [2, 5, 6.7, ‘Hi’] print(“List is:”, List)
Izlaz:
Popis je: [2, 5, 6.7, „Bok“]
Izlaz:
što od navedenog nije odgovornost tima?
U gornjem primjeru izravno ispisujemo popis pomoću funkcije ispisa, ne pristupamo pojedinačnom elementu s popisa.
Pristupimo pojedinačnom elementu s popisa.
Primjer: 2
List = [2, 5, 6.7, ‘Hi’] print(“Second element of the list is:”, List[1])
Izlaz:
Drugi element popisa je: 5
Izlaz:
U gornjem primjeru možete primijetiti da ispisujemo drugi element popisa koji je 5, ali možda ćete dobiti pitanje zašto u ispisu ispisujemo List [1]? To je zato što indeks počinje od Nula, stoga se Lista [1] odnosi na drugi element popisa.
Primjer: 3
List = [2, 5, 6.7, ‘Hi’] print(“First element in the List is: ”, List[0]) print(“Last element in the List is: ”, List[3])
Izlaz:
Prvi element na Popisu je: 2
Posljednji element na Popisu je: Bok
Izlaz:
Primjer: 4
List = [‘Hi’, [2, 4, 5]] print(“First element of the list is: ”, List[0][1]) print(“Elements present inside another list is: ”, List[1][2])
Izlaz:
Prvi element popisa je: i
Elementi prisutni na drugom popisu su: 5
Izlaz:
Ako pažljivo promatrate u gore navedenom programu, možete vidjeti da pristupamo elementima s ugniježđenog popisa.
Podaci će se interno pohraniti u matričnom formatu kako je prikazano dolje:
bok
2 4 5
Stoga, kada pokušamo pristupiti Popisu [0] [1], tada će se ukazati na 1svred i 2ndstupac, pri čemu će podaci biti 'i'.
Slično tome, kada pokušamo pristupiti Popisu [1] [2], tada će ukazati na 2ndred i 3rdstupac, pri čemu će podaci biti 5.
Negativno indeksiranje
Podatcima možemo pristupiti i pomoću negativnog indeksa. Negativni indeks uvijek će početi od -1, a -1 se odnosi na posljednji element, a -2 na posljednju drugu stavku i tako dalje.
Primjer: 1
List = [2, 5, 7, 3] print(“Last element in the list is: ”, List[-1])
Izlaz:
Posljednji element na popisu je: 3
Izlaz:
Primjer: 2
List = [2, 5, 7, 3] print(“Second element in the list is: ”, List[-3])
Izlaz:
Drugi element na popisu je: 5
Izlaz:
Rezanje popisa
Pomoću operatora rezanja (:) možemo pristupiti nizu elemenata s popisa
Primjer: 1
List = [1, 2, 3, 4, 5, 6, 7] print(“Elements from 2nd to 5th is: ”, List[1:5]) print(“Elements beginning to 2rd is: ”, List[:-3]) print(“Elements 4th to end is: ”, List[3:]) print(“Elements from start to end is: “, List[:])
Izlaz:
kako pregledati json datoteku
Elementi od 2. do 5. je: [2, 3, 4, 5]
Elementi koji počinju do 2. je: [1, 2, 3, 4]
Elementi od 4. do kraja su: [4, 5, 6, 7]
Elementi od početka do kraja su: [1, 2, 3, 4, 5, 6, 7]
Izlaz:
Također možemo pristupiti elementima prisutnim unutar popisa pomoću petlje for.
Primjer: 2
List = [1, 2, 3, 4, 5, 6, 7] forele in List: print(ele)
Izlaz:
1
dva
3
4
5
6
7
Izlaz:
Zapamtite format indeksiranja u nastavku:
H | JE | L | L | ILI | 5 | 7 | 9 | 4 |
0 | 1 | dva | 3 | 4 | 5 | 6 | 7 | 8 |
-9 | -8 | -7 | -6 | -5 | -4 | -3 | -dva | -1 |
Kao što je ranije spomenuto, Popis u pythonu je promjenjiv, što znači da se elementi mogu mijenjati čak i ako je to Integer ili String ili bilo koji tip podataka.
Popis možemo ažurirati pomoću operatora dodjele.
Primjer: 3
List = [2, 4, 6, 9] #updating the first element List[0] = 7 print(“Updated list is: ”, List)
Izlaz:
Ažurirani popis je: [7, 4, 6, 9]
Izlaz:
U gornjem primjeru ažuriramo prvi element popisa ‘2’ novim elementom ‘7’.
Primjer: 4
List = [2, 5, 1, 3, 6, 9, 7] #updating one or more elements of the list at once List[2:6] = [2, 4, 9, 0] print(“Updated List is: ”, List)
Izlaz:
Ažurirani popis je: [2, 5, 2, 4, 9, 0, 7]
U gornjem primjeru ažuriramo popis podataka na popis.
Izlaz:
Dodavanje elemenata na popis
Postoji nekoliko načina na koje možemo dodati elemente na popis, a python ima ugrađenu funkciju koja se naziva append ().
Korištenjem append () na popis možemo dodati samo jedan element, ako želite dodati više elemenata na popis, tada moramo koristiti za petlju . funkcija append () uvijek dodaje element na kraju popisa, funkcija append () uzima samo jedan argument.
Ako želite dodati elemente na određenom položaju, samo trebate koristiti metodu insert (). insert () uzima dva argumenta, tj. pozicija i vrijednost, pozicija se odnosi na indeks, gdje je potrebno dodati elemente, a vrijednost se odnosi na element koji se dodaje na popis.
Postoji još jedna metoda koja se naziva extension (), pomoću koje možemo dodati elemente na popis. metoda extension () koristi se za dodavanje popisa elemenata na popis. Slično metodi append () i extension (), također će dodati elemente na kraju popisa.
Primjer: 1
List = [“Hello”, “Good Morning”] print(“List before appending values is: “, List) List.append(“Python”) List.append(“Hi”) print(“List after appending values is: ”, List)
Izlaz:
Popis prije dodavanja vrijednosti je: [„Pozdrav“, „Dobro jutro“]
Popis nakon dodavanja vrijednosti je: [„Zdravo“, „Dobro jutro“, „Python“, „Bok“]
U gornjem primjeru dodajemo vrijednosti 'Python' i 'Hi' na kraj Popisa.
Izlaz:
Primjer: 2
List = [“Hello”, “Good Morning”] print(“List before appending values is: “, List) print(“Length of the list before appending is: “, len(List)) List.append(“Python”) List.append(“Hi”) print(“List after appending values is: ”, List) print(“Length of the list after appending is: “, len(List))
Izlaz:
Popis prije dodavanja vrijednosti je: [„Pozdrav“, „Dobro jutro“]
Duljina popisa prije dodavanja je: 2
Popis nakon dodavanja vrijednosti je: [„Zdravo“, „Dobro jutro“, „Python“, „Bok“]
Duljina popisa nakon dodavanja je: 4
Duljinu popisa možemo pronaći pomoću funkcije len (), kao što je prikazano u gornjem primjeru.
Izlaz:
Također možemo dodati više vrijednosti na popis pomoću petlje for.
Primjer: 3
List = [7, 9, 8] print(“List before adding elements is: “, List) print(“Length of List before adding elements is: “, len(List)) for i in range(2, 6): List.append(i) print(“List after adding elements is: “, List) print(“Length of List after adding elements is: “, len(List))
Izlaz:
Popis prije dodavanja elemenata je: [7, 9, 8]
Duljina popisa prije dodavanja elemenata je: 3
Popis nakon dodavanja elemenata je: [7, 9, 8, 2, 3, 4, 5]
Duljina popisa nakon dodavanja elemenata je: 7
Izlaz:
Što će se dogoditi ako popisu dodamo popis? Da vidimo to u primjeru u nastavku.
Primjer: 4
List1 = [“Hi”, “Python”] List2 = [1, 5, 7, 2] List1.append(List2) print(“List1 after appending List2 is: “, List1)
Izlaz:
Popis1 nakon dodavanja Popisa2 je: [„Bok“, „Python“, [1, 5, 7, 2]]
Ako primijetite u gornjem primjeru, kada dodamo List2 na List1, tada će List1 postati ugniježđeni popis.
Izlaz:
Ako ne želite napraviti popis kao ugniježđeni popis nakon dodavanja popisa, onda je bolje koristiti metodu extension ().
Primjer: 5
List1 = [“Hi”, “Python”] List2 = [1, 5, 7, 2] List1.extend(List2) print(“List1 after appending List2 is: “, List1)
Izlaz:
List1 nakon dodavanja List2 je: [„Bok“, „Python“, 1, 5, 7, 2]
Kada koristimo metodu extension (), elementi List1 bit će prošireni elementima List2. Imajte na umu da neće dodati popis kada koristimo metodu extension ().
Izlaz:
Kada proširite popis nizom, on će dodati svaki znak niza na popis, jer je niz moguće ponoviti.
Primjer: 6
List = [1, 5, 7, 2] List.extend(“Python”) print(“List after extending the String is: “, List)
Izlaz:
Popis nakon produženja niza je: [1, 5, 7, 2, „P“, „y“, „t“, „h“, „o“, „n“]
Izlaz:
Popis dodaj () vs produži ()
Pogledajmo neke primjere za extension () i append ().
Primjer: 1
def my_fun(): List1 = [“Hi”, 1, “Hello”, 2, 5] print(“The elements of List is: “, List) List.append(“Python”) print(“List after appending the String is: “, List) List.append([“one”, “two”, 3]) print(“List after appending the list is: “, List) List2 = [“Apple”, “Orange”, 2, 8] List1.extend(List2) print(“List1 after extending the List2 is: “, List1) if __name__ == “__main__”: my_fun()
Izlaz:
Elementi Popisa su: [„Bok“, 1, „Zdravo“, 2, 5]
Popis nakon dodavanja niza je: [„Bok“, 1, „Pozdrav“, 2, 5, „Python“]
Popis nakon dodavanja popisa je: [„Bok“, 1, „Zdravo“, 2, 5, „Python“, [„jedan“, „dva“, 3]]
Lista1 nakon proširenja Popisa2 je: [„Bok“, 1, „Pozdrav“, 2, 5, „Python“, [„jedan“, „dva“, 3], „Apple“, „Naranča“, 2, 8]
Izlaz:
Primjer: 2
List = [“Apple”, “Orange”, “Mango”, “Strawberry”] print(“List before inserting is: “, List) List.insert(2, “Watermelon”) print(“List after inserting is: “, List)
Izlaz:
Popis prije umetanja je: [„Jabuka“, „Naranča“, „Mango“, „Jagoda“]
Popis nakon umetanja je: [„Jabuka“, „Naranča“, „Lubenica“, „Mango“, „Jagoda“]
Izlaz
Kao što smo ranije razgovarali, metoda insert () koristi se za umetanje vrijednosti na određeni indeks popisa.
Primjer: 3
List1 = [2, 4, 6, 8] print(“List after adding the elements is: “, List1 + [1, 3, 5, 7]) print(“After adding same elements repeatedly is: “, [“Hi”] *5)
Izlaz:
Popis nakon dodavanja elemenata je: [2, 4, 6, 8, 1, 3, 5, 7]
Nakon ponovnog dodavanja istih elemenata slijedi: [„Hi“, „Hi“, „Hi“, „Hi“, „Hi“]
Izlaz:
Brisanje ili uklanjanje elemenata s popisa
Također možemo izbrisati ili ukloniti elemente s popisa pomoću izraza del i remove ().
Da vidimo u primjeru u nastavku.
Primjer: 1
List = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(“List before deleting 3rd element is: ”, List) del List[3] print(“List after deleting 3rd element is: ”, List) del List[1:3] print(“List after deleting multiple elements is: “, List)
Izlaz:
Popis prije brisanja 3. elementa je: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Popis nakon brisanja 3. elementa je: [1, 2, 3, 5, 6, 7, 8, 9]
Popis nakon brisanja više elemenata je: [1, 5, 6, 7, 8, 9]
U gornjem primjeru možete primijetiti da smo koristili del naredbu za brisanje elementa ili više izraza s popisa.
Izlaz:
Sad ćemo vidjeti o metodi remove ().
Primjer: 2
List = [1, 2, 3, 4, 5, 6, 7] print(“List before removing a element is: “, List) List.remove(3) print(“List after removing a element is: “, List) List.pop() print(“List after poping the element is: “, List)
Izlaz:
Popis prije uklanjanja elementa je: [1, 2, 3, 4, 5, 6, 7]
Popis nakon uklanjanja elementa je: [1, 2, 4, 5, 6, 7]
Popis nakon iskakanja elementa je: [1, 2, 4, 5, 6]
U gornjem primjeru možete primijetiti da uklanjamo element sa popisa metodom remove (). Metoda pop () koristi se za uklanjanje / brisanje posljednjeg elementa s popisa.
Izlaz:
Metode popisa
Metode | Opis |
---|---|
čisto() | Da biste uklonili sve elemente s popisa. |
dodati() | Da biste dodali element na kraju popisa. |
umetnuti() | Za umetanje elementa u određeni indeks popisa. |
proširiti () | Da biste dodali popis elemenata na kraj popisa. |
računati() | Da bi se vratio broj elemenata s određenom vrijednošću. |
indeks() | Da se vrati indeks prvog elementa. |
obrnuti () | Poništavanje postojećeg popisa. |
ukloniti() | Da biste uklonili elemente s popisa. |
Zaključak
U ovom uputstvu pogledali smo neke obilježja Python popisa zajedno s raznim načinima manipuliranja popisom kao što su stvaranje popisa , pristup stavkama s popisa , i zamjena predmeta s popisa.
Ovaj se vodič na Python popisu može zaključiti sljedećim uputama:
- Popis je jedan od tipova podataka u Pythonu, koji se također naziva i strukturom podataka.
- Popis se koristi za spremanje velikog broja vrijednosti bilo kojih tipova podataka u jednu varijablu, što zauzvrat pomaže u jednostavnom pristupu.
- Indeks za popis uvijek počinje od nule kao i ostali programski jezici.
- Ako radite na popisu, morate se sjetiti svih njegovih uobičajenih ugrađenih funkcija.
=> Posjetite ovdje da biste naučili Python ispočetka
Preporučena literatura
- Vodič za početnike za Python (Praktični BESPLATNI trening za Python)
- Python varijable
- Vodič za napredni popis Pythona (sortiranje, preokretanje, indeksiranje, kopiranje, pridruživanje, zbroj)
- Vodič za Python Tuple s praktičnim primjerima
- Python string funkcije
- Popisi u STL-u
- Povezana struktura podataka popisa na C ++ s ilustracijom
- Struktura podataka kružnog povezanog popisa na C ++ s ilustracijom