python list create
V tej vadnici seznama Python bomo raziskali načine za ustvarjanje, dostop, rezanje, dodajanje / brisanje elementov na sezname Python, ki so verjetno eden najbolj uporabnih podatkovnih vrst:
Python vključuje 4 tipe podatkovnih zbirk, kot je navedeno spodaj:
- Seznam
- Nastavite
- Slovar
- Tuple
V tej vadnici bomo podrobno razpravljali o seznamu in njegovih različnih operacijah. V Pythonu je seznam podatkovna struktura ali pa je kot matrika, ki se uporablja za shranjevanje več podatkov hkrati.
=> Tukaj raziščite Python Training Series
Če imate izkušnje s katerim koli drugim programskim jezikom, kot so Java, C, C ++ itd., Potem boste seznanjeni s konceptom nizov. Seznam je skoraj enak kot nizi.
Kaj se boste naučili:
- Kaj so seznami Python
- Več o seznamih v Pythonu
- Zaključek
Kaj so seznami Python
V Pythonu je seznam podatkovni tip , ki hrani zbirko različnih predmetov (predmetov) v oglatem oklepaju ([]). Vsak element na seznamu je ločen z vejico (,) s prvim elementom v indeksu 0.
Opomba :Če nadaljujemo, se bodo vsi primeri v tej vadnici neposredno izvajali iz lupine Python, razen če je navedeno drugače.
Spodaj je primer seznama s 5 elementi.
>>> l = ['what','who','where','when','how'] >>>l ['what','who','where','when','how']
V zgornjem primeru lahko vidimo, da seznam vsebuje String predmeti kot predmeti, vsak element pa je ločen z vejico.
Značilnosti seznama Python
Preden si ogledamo, kako lahko manipuliramo s predmeti na seznamu, si oglejmo nekatere značilnosti, zaradi katerih so Pythonovi seznami favorizirani.
Pythonovi seznami so zaporedja vsebnikov
Za razliko od ravnih zaporedij ( vrvica , array.array , pogled spomina itd.), ki lahko vsebuje samo predmete ene vrste, seznam je zaporedje vsebnika ki lahko vsebuje predmete tako ene kot druge vrste.
Primer s predmeti ene vrste
Odprimo našo lupino python in določimo seznam števil.
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']
Zgornji primer prikazuje seznam predmetov iste vrste, v tem primeru vrste niz (str) .
Primer s predmeti različnih vrst
Odprimo našo lupino Python in določimo drugo različico seznama številk.
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]
Zgornji primer prikazuje seznam predmetov različnih vrst. Vrste so vrvica , celo število, in float .
// a sketch showing the list of items and their types as annotation
Seznam Python lahko vsebuje tudi vse predmete, kot je funkcije , razredih , moduli , seznami , korice, in veliko več.
Odprite urejevalnik in prilepite spodnjo kodo:
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)
Izhod
Pythonovi seznami so urejena zaporedja
Seznam Python je urejena zbirka predmetov. Položaj vsakega predmeta na seznamu je zelo pomemben. Dejansko dva seznama z istimi postavkami nista enaka, če vrstni red postavitve elementov ni enak.
>>> ['a','b','c','d'] == ['a','c','b','d'] False
Ta značilnost seznama Python omogoča dostop do njegovih elementov z indeksiranjem in rezanjem (več o tem kasneje).
Pythonovi seznami so spremenljive sekvence
Python seznami so spremenljivi. Kaj pa je spremenljiv predmet? To je preprosto predmet, ki ga je mogoče po ustvarjanju spremeniti. Primeri drugih spremenljivih zaporedij slovar , array.array , zbirke.deque .
Zakaj spremenljiv? Zaporedja, kot so seznami, se uporabljajo za zapletene operacije, zato je smiselno, da bi morali biti sposobni spremembe , rastejo , skrči , posodobitev itd . To je mogoče le s spremenljivostjo. Spremenljivost nam omogoča tudi spreminjanje obstoječih seznamov (več o tem).
Preverimo spremenljivost seznama s spodnjim primerom.
Preprosto odprite urejevalnik in prilepite kodo:
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()
Izhod
Iz zgornjega izhoda opazimo, da je seznam pred in po spremembi drugačen. Vendar Id vrednost je enaka. The Id vrednost tukaj predstavlja naslov predmeta v pomnilniku - ki ga dobimo s Pythonom id () .
To nam pove, da je vsebina seznama, čeprav se je spremenila, še vedno isti predmet. Zato to ustreza naši definiciji: ' To je preprosto predmet, ki ga je mogoče po ustvarjanju spremeniti '
Opomba :V zgornjem primeru smo uporabili indeksiranje (več o tem) za spreminjanje seznama.
Manipuliranje s Pythonovimi seznami
S seznami Pythona je nebo naša meja. S seznami lahko naredimo nešteto stvari dodajanje , brisanje , indeksiranje , rezanje , preverjanje članstva , in veliko več. Python ima tudi vgrajene funkcije, ki pomagajo narediti manipulacijo s seznami bolj razburljivo.
V tem razdelku si bomo ogledali nekaj najpogosteje uporabljenih operacij s seznami.
Ustvarjanje seznama
Če želite ustvariti seznam, preprosto postavite več elementov ali izrazov v oglati oklepaj, ločen z vejicami.
[expression1, expression2,...,expresionN]
>>> l = [4,3,5,9+3,False] >>> l [4, 3, 5, 12, False]
Python ima vgrajen objekt z imenom seznam (), ki se lahko uporablja za ustvarjanje seznamov.
list( sequence )
>>> l = list() # create an empty list >>> l []
Python seznam () lahko prevzame vrste zaporedja in jih pretvori v sezname. To je tipičen način pretvorbe nabora v seznam.
>>> t = (4,3,5) # tuple >>>l = list(t) # convert into list [4,3,5]
V zgornjem primeru smo uporabili podatkovni tip Tuple . Je podoben seznamu, vendar je za razliko od seznamov nespremenljiv in njegovi elementi so zaprti v oklepajih.
Drug način, s katerim lahko ustvarimo seznam, je z uporabo seznami ki ima naslednjo skladnjo.
[expression for item in sequence]
>>> [i**2 for i in range(4)] [0, 1, 4, 9]
Omeniti velja, da se Pythonovi seznami posredujejo po sklicu. Pomen, dodelitev seznama bo zagotovila identiteto njegove lokacije v pomnilniku. Napaka, ki jo naredijo številni začetniki, je, da na ta način ustvarjajo sezname.
>>> l1 = l2 = [4,3] # wrong way to create separate list objects >>> l1 [4,3] >>> l2 [4,3]
Tu bi lahko mislili, da smo ustvarili dva različna seznama, a resnično smo pravkar ustvarili enega. Pokažimo to s spreminjanjem ene od spremenljivk.
>>> l1[0] = 0 >>> l1 [0,3] >>> l2 [0,3]
Opažamo, da spreminjanje ene spremenljivke spremeni drugo. To je zato, ker imata spremenljivki l1 in l2 isto identiteto lokacije pomnilnika, zato obe usmerjata na isti objekt.
Dodajanje elementov na seznam
Python ima na svoj način na več načinov dodajanje elementov. Najpogostejši način je uporaba dodaj () metoda. Drugi načini so z uporabo razširi () metoda. Indeksiranje in rezanje (več o tem kasneje) se bolj verjetno uporabljajo za zamenjavo elementov na seznamu.
# 1) Z uporabo metode append ()
Ta metoda vzame en element in ga doda na konec seznama. Ne vrne novega seznama, ampak ga le spremeni (zahvaljujoč spremenljivosti).
>>>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, ]
Iz zgornjega primera je treba opozoriti na nekaj stvari:
- Elementi tukaj so lahko izrazi, podatkovni tipi, zaporedja in še veliko več.
- The dodaj () metoda ima časovno zapletenost (0) 1. To pomeni, da je konstanta.
# 2) Uporaba metode extension ()
Ta metoda kot argument vzame iterable in doda vse elemente z njega na konec seznama. Ta metoda se večinoma uporablja, kadar želimo na seznam dodati posamezne elemente zaporedja
V bistvu razširi () metoda se ponovi nad svojim argumentom in doda vsak element na seznam. Tako kot metoda append () ne vrne novega seznama, temveč ga spremeni na mestu.
>>> 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']
Iz zgornjega primera je treba opozoriti na nekaj stvari:
- Niz je ponovljiv, zato je naš razširi () metoda se bo ponovila nad svojimi znaki.
- The razširi () metoda ima časovno zapletenost (0) K, kjer je K dolžina argumenta.
Dostop do elementov s seznama
Indeksiranje in rezanje so najpogostejša sredstva za dostop do seznamov. Do elementov na seznamu lahko dostopamo tudi z zankami, kot je za zanko .
# 1) Indeksiranje
Seznam Python uporablja ničelno oštevilčenje sistem. To pomeni, da so vsi njeni elementi enolično identificirani s številko indeksa, ki se začne od 0 do n-1, kjer je n dolžina seznama.
Upoštevajte spodnji seznam:
>>> colors = ['red','blue','green','yellow','black'] # create list >>> colors ['red','blue','green','yellow','black'] >>> len(colors) # get list length 5
Spodnja tabela prikazuje njihove ustrezne indekse v ničelno oštevilčenje seznama.
Postavka | mreža | modra | zelena | rumena | Črna |
---|---|---|---|---|---|
pop () | Če želite izbrisati / odstraniti element z zadnjega na seznamu. | ||||
Kazalo | 0 | 1. | dva | 3. | 4. |
Iz zgornje tabele vidimo, da je prvi element ('rdeč') na indeksnem položaju 0, zadnji element ('črn') pa na indeksnem položaju 4 (n-1), kjer je n = 5 (dolžina predmeta barve).
Kot smo videli v zgornjem oddelku z značilnostmi, so seznami Pythona urejena zaporedja. To nam omogoča indeksiranje za lažji dostop do elementa in upravljanje z njim.
Uporabite indeksiranje za dostop do elementov pri določenih indeksih zgoraj ustvarjenega predmeta barv.
>>> 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
Opomba :Zadnja izjava zgoraj poskuša dostopati do predmeta na položaju indeksa 9 s predmeta seznama dolžine 5. Na seznamu Python bo dostop do elementa v indeksu, ki ne obstaja, dvignil IndexError izjema.
Pomemben koncept indeksiranja je, da lahko uporabimo negativno indeksiranje, tj. Do elementov seznama lahko dostopate obratno, začenši z -1 za zadnji element in konča na -n za zadnji element, kjer je n dolžina predmeta seznama.
Če bomo uporabili negativno indeksiranje, bo v zgornji tabeli videti, kot je prikazano spodaj:
Postavka | mreža | modra | zelena | rumena | Črna |
---|---|---|---|---|---|
Kazalo | -5 | -4 | -3 | -dve | -1 |
Uporabite negativno indeksiranje za dostop do nekaterih elementov zgoraj ustvarjenega barvnega predmeta.
>>> 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 razliko od indeksiranja, ki vrne samo en element, rezanje po drugi strani pa lahko vrne vrsto predmetov.
Ima naslednjo sintakso:
L[n:m]
Ko je n številka indeksa, kjer se rezina začne (privzeto je 0), m pa ekskluzivna številka indeksa, kjer se rezina konča (privzeto dolžina-1). Ločeni so z dvopičjem (:)
Upoštevajte spodnji primer, ki uporablja rezanje za dostop do elementov pri določenih indeksih zgoraj ustvarjenega predmeta barve.
>>> 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'] >>>
V sintaksi L [n: m] je n privzeto 0, m pa privzeto dolžina seznama. Torej, v primeri 1. in 3. zgoraj bi lahko izpustili n in m kot barvi [: 2] oziroma barvi [2:]. Ali [:], ki v tem primeru vrne plitvo kopijo celotnega predmeta seznama.
Med rezanjem seznamov lahko uporabimo tudi negativne indeksne številke. To se običajno uporablja, kadar želimo do seznama dostopati obratno.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[-3:-2] ['green'] >>> colors[-2:] ['yellow', 'black']
Obstaja tudi tretji parameter, ki ga rezanje podpira korak (s). Določa, koliko elementov naj se premakne naprej, ko je prvi element s seznama pridobljen. Privzeto je 1.
L[n:m:s]
Z enakim zgoraj definiranim seznamom barv uporabimo tretji parameter rezine, da premaknemo 2 koraka.
>>> colors # original list ['red','blue','green','yellow','black'] >>> colors[0:3:2] ['red', 'green']
# 3) Uporaba zank
Zanke se večinoma uporabljajo za dostop do elementov na seznamu za manipulacijo s predmeti. Torej, če želimo obdelati elemente s seznama, lahko uporabimo za zanko za dostop do predmetov in njihovo predajo, da se operirajo.
Recimo, za vsak element želimo prešteti število črk. Lahko uporabimo za zanko za dosego tega.
Odprite urejevalnik in prilepite spodnjo kodo:
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))
Izhod
Za konec tega razdelka si oglejmo dve kul stvari, ki jih je mogoče narediti z rezanjem.
-
Naredite plitvo kopijo seznama
To je osnovni način uporabe kopirati() metoda predmeta seznama ali vgrajene funkcije copy.copy . Vendar je to mogoče doseči z 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 seznam
Osnovni način je uporaba vzvratno metoda predmeta seznama ali vgrajene funkcije obrnjeno () . Vendar je to mogoče doseči z 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'] >>>
Odstranjevanje elementov s seznama
Ker lahko na seznam dodamo čim več elementov, jih lahko tudi odstranimo s seznama. Trije načini odstranjevanja predmetov so:
# 1) Uporaba izjave del
Ima naslednjo sintakso:
del target_list
Ciljni seznam ( ciljni seznam ) je lahko celoten seznam (v primeru, da ga želite izbrisati) ali element ali predmeti na seznamu (v tem primeru uporabite indeksiranje ali rezanje).
Oglejte si spodnji primer .
Recimo, nekaj elementov želimo izbrisati s zgoraj ustvarjenega seznama barv.
>>> 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 >>>
Opomba :Stavek del izbriše na mestu, tj. bo spremenil prvotni predmet seznama in ne vrnil novega predmeta seznama.
# 2) Uporaba seznama.remove (x)
S seznama odstrani prvi element, katerega vrednost je enaka x . Če takega elementa ni, se pojavi vrednost ValueError.
Ta metoda se večinoma uporablja za odstranjevanje elementov s seznama po imenu, za razliko od stavka del, ki uporablja indeksiranje in 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 >>>
Opomba :Predmet seznama Odstrani() metoda izbriše na mestu, tj. bo spremenil prvotni predmet seznama in ne vrnil novega predmeta seznama.
# 3) Uporaba list.pop ([i])
Odstrani in vrne element na danem mestu v seznamu. Če ni naveden i (indeks), odstrani in vrne zadnji element na seznamu.
Opomba :Oglati oklepaj okrog i zgoraj ne pomeni seznama i, temveč pomeni, da i ni obvezen.
>>> 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'] >>>
Opomba: Seznam. pop ([i]) metoda izbriše na mestu, tj. bo spremenil prvotni predmet seznama in ne vrnil novega predmeta seznama. Vrne tudi element, odstranjen s seznama
Zamenjava elementov s seznama
Zamenjava predmetov je precej preprosta. V enem od zgornjih odsekov smo videli indeksiranje in rezanje. Z njimi lahko dostopate do elementov s seznama in jih odstranjujete.
# 1) Zamenjajte uporabo 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) Zamenjava z rezanjem
L[n:m] = value
Opomba : Vrednost bi moral biti iterable ali pa TypeError bo izjema.
>>> 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'] >>>
Pogosto zastavljena vprašanja
V # 1) Kaj je seznam seznamov v Pythonu?
Odgovor: Seznam seznamov v Pythonu je seznam, ki vsebuje sezname kot svoj element.
Na primer
[['a','b'],['c','d']]
Lahko se imenuje tudi a ugnezdeni seznam .
V # 2) Kako prijavite seznam v Pythonu?
Odgovor: V Pythonu je seznam mogoče razglasiti na dva načina. Bodisi z uporabo vgrajene funkcije seznam () ali z uporabo zapisa oklepaja []. seznam () sprejme iterable in [] sprejme predmete katere koli vrste, ločene z vejico.
[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]
V # 3) Ali lahko dodate seznam na seznam Python?
Odgovor: Da, seznam lahko damo na seznam. Pravzaprav je seznam zaporedje vsebnika, ki zajema predmete katere koli vrste podatkov.
V # 4) Kaj naredi seznam () v Pythonu?
Odgovor: seznam ( ) je vgrajena funkcija v Pythonu, ki ustvari objekt seznama. Kot argument je treba upoštevati iterable.
>>> list((3,2,4)) # The iterable object here is a tuple. [3, 2, 4] >>>
V # 5) Ali lahko seznam Python vsebuje različne vrste?
Odgovor: Seznam je zaporedje vsebnika, ki zajema predmete katere koli vrste podatkov ( seznam , tuple , celo število , float , strune itd.)
Več o seznamih v Pythonu
Kaj je struktura podatkov?
Računalniki se uporabljajo za shranjevanje ogromnega števila podatkov ali za obdelavo ogromnega števila podatkov z visoko hitrostjo in natančnostjo. Zato je najbolje, da podatke hitro shranjujete za hiter dostop.
Medtem ko se obdelava podatkov zgodi, bi se morala zgoditi v najkrajšem možnem času brez izgube natančnosti. Podatkovno strukturo uporabljamo za organizirano obdelavo podatkov in shranjevanje podatkov v pomnilnik za obdelavo.
Ker je Python programski jezik na visoki ravni in razlaga, je zelo pomembno, da uporabimo podatkovno strukturo v Pythonu.
Kaj je seznam?
Seznam je podatkovna struktura, ki se uporablja za shranjevanje več podatkov hkrati.
Podatki, shranjeni na seznamu, so homogeni in so posledično najmočnejša značilnost seznama v Pythonu. Na en seznam lahko shranimo več podatkov različnih vrst podatkov, kot so niz, cela števila in predmeti.
Seznam je v Pythonu spremenljiv, zato lahko podatke kadar koli spremenite tudi po ustvarjanju. Seznami so zelo zmogljivi za izvajanje nizov in čakalnih vrst v Pythonu.
Kot smo že omenili, seznam shranjuje podatke v urejenem zaporedju, do podatkov, shranjenih na seznamu, pa se dostopa z uporabo njihovega indeksa, pri seznamu pa se indeks vedno začne od nič. Vsak element ima določeno mesto na seznamu in do vseh teh podatkov se dostopa s pomočjo indeksa.
Na seznamu lahko večkrat shranimo isto vrednost in vsi podatki bodo obravnavani kot ločen in edinstven element. Sezname je najbolje shraniti in kasneje ponoviti.
Ustvarjanje seznama
Podatki na seznamu so shranjeni z ločenimi vejicami in zaprti v oglatem oklepaju ([]). Elementi na seznamu ne smejo biti iste vrste.
Syntax: List = [item1, item2, item3]
Primer 1:
List = [ ]
2. primer:
List = [2, 5, 6.7]
3. primer:
List = [2, 5, 6.7, ‘Hi’]
Primer 4:
List = [‘Hi’, ‘Python’, ‘Hello’]
V zgornjih primerih lahko opazimo, da imamo shranjene elemente različnih podatkovnih tipov z ločenimi vejicami, 2 in 5 sta tipa Integer, 6.7 je tipa float in 'Hi' je tipa String, vsi ti elementi pa so zaprti v seznam, zaradi česar je seznam.
Lahko razglasimo tudi prazen seznam. Seznam lahko prijavimo tudi na drugem seznamu in ga imenujemo ugnezdeni seznam.
Primer 5:
List = [‘Hi’, [2, 4, 5], [‘Hello’]]
V zgornjem primeru lahko opazite, da je bil seznam prijavljen znotraj drugega seznama.
Dostop do vrednosti na seznamu
Na različne načine lahko dostopamo do elementov na seznamu v Pythonu.
S pomočjo indeksa lahko dostopamo do elementov seznama. Indeks se začne od 0 in indeks mora biti vedno celo število. Če uporabimo indeks, ki ni celo število, kot je float, bo to povzročilo TypeError.
Primer 1:
List = [2, 5, 6.7, ‘Hi’] print(“List is:”, List)
Izhod:
Seznam je: [2, 5, 6.7, »Živjo«]
Izhod:
najboljši igralni studii za delo
V zgornjem primeru seznam neposredno tiskamo s funkcijo tiskanja, do posameznega elementa s seznama ne dostopamo.
Dostopimo do posameznega elementa s seznama.
Primer: 2
List = [2, 5, 6.7, ‘Hi’] print(“Second element of the list is:”, List[1])
Izhod:
Drugi element seznama je: 5
Izhod:
V zgornjem primeru lahko opazite, da tiskamo drugi element seznama, ki je 5, vendar se vam lahko pojavi vprašanje, zakaj v izjavi za tiskanje tiskamo seznam [1]? To je zato, ker se indeks začne z nič, zato se List [1] nanaša na drugi element seznama.
Primer: 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])
Izhod:
Prvi element na seznamu je: 2
Zadnji element na seznamu je: Živjo
Izhod:
Primer: 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])
Izhod:
Prvi element seznama je: i
Elementi na drugem seznamu so: 5
Izhod:
Če natančno opazujete v zgornjem programu, lahko vidite, da dostopamo do elementov z ugnezdenega seznama.
Podatki bodo interno shranjeni v matrični obliki, kot je prikazano spodaj:
Živjo
2 4 5
Ko bomo poskusili dostopati do seznama [0] [1], bo kazal na 1stvrstici in 2ndstolpec, zato bodo podatki 'i'.
Podobno, ko poskušamo dostopati do seznama [1] [2], bo kazal na 2ndvrstici in 3rdstolpca, zato bodo podatki 5.
Negativno indeksiranje
Do podatkov lahko dostopamo tudi z negativnim indeksom. Negativni indeks se bo vedno začel od -1 in -1 se nanaša na zadnji element, -2 pa na zadnji drugi element itd.
Primer: 1
List = [2, 5, 7, 3] print(“Last element in the list is: ”, List[-1])
Izhod:
Zadnji element na seznamu je: 3
Izhod:
Primer: 2
List = [2, 5, 7, 3] print(“Second element in the list is: ”, List[-3])
Izhod:
Drugi element na seznamu je: 5
Izhod:
Rezanje seznama
Z operaterjem rezine (:) lahko dostopamo do številnih elementov s seznama
Primer: 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[:])
Izhod:
Elementi od 2. do 5. je: [2, 3, 4, 5]
Elementi, ki se začnejo do 2. je: [1, 2, 3, 4]
Elementi od 4. do konca so: [4, 5, 6, 7]
Elementi od začetka do konca so: [1, 2, 3, 4, 5, 6, 7]
Izhod:
Do elementov, ki so prisotni na seznamu, lahko dostopamo tudi z zanko for.
Primer: 2
List = [1, 2, 3, 4, 5, 6, 7] forele in List: print(ele)
Izhod:
1.
dva
3.
4.
5.
6.
7.
Izhod:
Ne pozabite na spodnjo obliko indeksiranja:
H | JE | L | L | ALI | 5. | 7. | 9. | 4. |
0 | 1. | dva | 3. | 4. | 5. | 6. | 7. | 8. |
-9 | -8 | -7 | -6 | -5 | -4 | -3 | -dve | -1 |
Kot smo že omenili, je seznam v pythonu spremenljiv, kar pomeni, da je elemente mogoče spremeniti, tudi če gre za celo število ali niz ali kateri koli podatkovni tip.
Seznam lahko posodobimo s pomočjo operaterja dodelitve.
Primer: 3
List = [2, 4, 6, 9] #updating the first element List[0] = 7 print(“Updated list is: ”, List)
Izhod:
Posodobljen seznam je: [7, 4, 6, 9]
Izhod:
V zgornjem primeru prvi element seznama '2' posodabljamo z novim elementom '7'.
Primer: 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)
Izhod:
Posodobljeni seznam je: [2, 5, 2, 4, 9, 0, 7]
V zgornjem primeru posodabljamo seznam podatkov na seznam.
Izhod:
Dodajanje elementov na seznam
Obstaja več načinov, kako lahko na seznam dodamo elemente, python pa ima vgrajeno funkcijo, imenovano append ().
S pomočjo append () lahko na seznam dodamo samo en element, če želite na seznam dodati več elementov, moramo uporabiti za zanko . funkcija append () vedno doda element na koncu seznama, funkcija append () pa samo en argument.
Če želite elemente dodati na določenem mestu, morate uporabiti samo metodo insert (). insert () ima dva argumenta, to je položaj in vrednost, položaj se nanaša na indeks, kjer je treba dodati elemente, vrednost pa na element, ki ga je treba dodati na seznam.
Obstaja še ena metoda, imenovana extension (), s katero lahko na seznam dodamo elemente. metoda extend () se uporablja za dodajanje seznama elementov na seznam. Podobno kot metoda append () in extension () bo dodala tudi elemente na koncu seznama.
Primer: 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)
Izhod:
Seznam pred dodajanjem vrednosti je: [»Pozdravljeni«, »Dobro jutro«]
Seznam po dodanih vrednostih je: [»Pozdravljeni«, »Dobro jutro«, »Python«, »Živjo«]
V zgornjem primeru na konec seznama dodajamo vrednosti 'Python' in 'Hi'.
programska ura za prosti čas za pc
Izhod:
Primer: 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))
Izhod:
Seznam pred dodajanjem vrednosti je: [»Pozdravljeni«, »Dobro jutro«]
Dolžina seznama pred dodajanjem je: 2
Seznam po dodanih vrednostih je: [»Pozdravljeni«, »Dobro jutro«, »Python«, »Živjo«]
Dolžina seznama po dodajanju je: 4
Dolžino seznama lahko najdemo s pomočjo funkcije len (), kot je prikazano v zgornjem primeru.
Izhod:
Na seznam lahko z zanko for dodamo tudi več vrednosti.
Primer: 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))
Izhod:
Seznam pred dodajanjem elementov je: [7, 9, 8]
Dolžina seznama pred dodajanjem elementov je: 3
Seznam po dodajanju elementov je: [7, 9, 8, 2, 3, 4, 5]
Dolžina seznama po dodajanju elementov je: 7
Izhod:
Kaj se zgodi, če seznamu dodamo seznam? Poglejmo to v spodnjem primeru.
Primer: 4
List1 = [“Hi”, “Python”] List2 = [1, 5, 7, 2] List1.append(List2) print(“List1 after appending List2 is: “, List1)
Izhod:
List1 po dodajanju List2 je: [»Živjo«, »Python«, [1, 5, 7, 2]]
Če v zgornjem primeru opazite, ko seznam2 dodamo na seznam1, bo seznam1 ugnezden.
Izhod:
Če po dodajanju seznama ne želite narediti seznama kot ugnezdenega, potem je bolje uporabiti metodo extension ().
Primer: 5
List1 = [“Hi”, “Python”] List2 = [1, 5, 7, 2] List1.extend(List2) print(“List1 after appending List2 is: “, List1)
Izhod:
List1 po dodajanju List2 je: [»Živjo«, »Python«, 1, 5, 7, 2]
Ko uporabimo metodo extension (), se bodo elementi List1 razširili z elementi List2. Ne pozabite, da ne bo dodal seznama, če uporabimo metodo extension ().
Izhod:
Ko seznam razširite z nizom, bo na seznam dodal vsak znak niza, saj je niz ponovljiv.
Primer: 6
List = [1, 5, 7, 2] List.extend(“Python”) print(“List after extending the String is: “, List)
Izhod:
Seznam po podaljšanju niza je: [1, 5, 7, 2, „P“, „y“, „t“, „h“, „o“, „n“]
Izhod:
Seznam append () vs extension ()
Oglejmo si nekaj primerov za extension () in append ().
Primer: 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()
Izhod:
Elementi seznama so: [»Živjo«, 1, »Pozdravljeni«, 2, 5]
Seznam po dodajanju niza je: [»Živjo«, 1, »Pozdravljeni«, 2, 5, »Python«]
Seznam po dodajanju seznama je: [„Živjo“, 1, „Pozdravljeni“, 2, 5, „Python“, [„ena“, „dve“, 3]]
List1 po razširitvi seznama2 je: [„Živjo“, 1, „Pozdravljeni“, 2, 5, „Python“, [„ena“, „dve“, 3], „Apple“, „Oranžna“, 2, 8]
Izhod:
Primer: 2
List = [“Apple”, “Orange”, “Mango”, “Strawberry”] print(“List before inserting is: “, List) List.insert(2, “Watermelon”) print(“List after inserting is: “, List)
Izhod:
Seznam pred vstavljanjem je: [„Apple“, „Orange“, „Mango“, „Strawberry“]
Seznam po vstavitvi je: [„Jabolko“, „Oranžna“, „Lubenica“, „Mango“, „Jagoda“]
Izhod
Kot smo že omenili, se metoda insert () uporablja za vstavljanje vrednosti na določen indeks seznama.
Primer: 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)
Izhod:
Seznam po dodajanju elementov je: [2, 4, 6, 8, 1, 3, 5, 7]
Po večkratnem dodajanju istih elementov je: ['Hi', 'Hi', 'Hi', 'Hi', 'Hi']
Izhod:
Brisanje ali odstranjevanje elementov s seznama
Elemente lahko s seznama tudi izbrišemo ali odstranimo s pomočjo stavkov del in remove ().
Poglejmo v spodnjem primeru.
Primer: 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)
Izhod:
Seznam pred brisanjem 3. elementa je: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Seznam po brisanju 3. elementa je: [1, 2, 3, 5, 6, 7, 8, 9]
Seznam po brisanju več elementov je: [1, 5, 6, 7, 8, 9]
V zgornjem primeru lahko opazite, da smo s stavkom del izbrisali element ali več stavkov s seznama.
Izhod:
Zdaj bomo videli metodo remove ().
Primer: 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)
Izhod:
Seznam pred odstranitvijo elementa je: [1, 2, 3, 4, 5, 6, 7]
Seznam po odstranitvi elementa je: [1, 2, 4, 5, 6, 7]
Seznam po pojavitvi elementa je: [1, 2, 4, 5, 6]
V zgornjem primeru lahko opazite, da element s seznama odstranjujemo z metodo remove (). Metoda pop () se uporablja za odstranjevanje / brisanje zadnjega elementa s seznama.
Izhod:
Seznam metod
Metode | Opis |
---|---|
jasno () | Če želite odstraniti vse elemente s seznama. |
dodaj () | Če želite dodati element na koncu seznama. |
vstavi() | Če želite vstaviti element v določen indeks seznama. |
razširi () | Če želite dodati seznam elementov na koncu seznama. |
štetje () | Vrniti število elementov z določeno vrednostjo. |
indeks () | Za vrnitev indeksa prvega elementa. |
vzvratno () | Če želite razveljaviti obstoječi seznam. |
Odstrani() | Če želite odstraniti elemente s seznama. |
Zaključek
V tej vadnici smo si ogledali nekaj značilnosti Python Seznamov skupaj z različnimi načini manipulacije s seznamom, kot so ustvarjanje seznama , dostop do predmetov s seznama , in zamenjava elementov s seznama.
To vadnico na seznamu Python lahko zaključite z naslednjimi kazalci:
- Seznam je eden od tipov podatkov v Pythonu, ki se imenuje tudi struktura podatkov.
- Seznam se uporablja za shranjevanje velikega števila vrednosti katere koli vrste podatkov v eno samo spremenljivko, kar pomaga pri enostavnem dostopu.
- Indeks za seznam se vedno začne od nič kot drugi programski jeziki.
- Če delate na seznamu, se morate spomniti vseh njegovih vgrajenih funkcij.
=> Obiščite tukaj, če se želite naučiti Pythona iz nič
Priporočeno branje
- Vadnica za Python za začetnike (praktično BREZPLAČNO usposabljanje za Python)
- Python spremenljivke
- Vadnica za napredne sezname Python (razvrščanje, obračanje, indeksiranje, kopiranje, združevanje, vsota)
- Vadnica za Python Tuple s praktičnimi primeri
- Funkcije niza Python
- Seznami v STL
- Povezana podatkovna struktura seznama v jeziku C ++ z ilustracijo
- Struktura podatkov krožnega povezanega seznama v jeziku C ++ z ilustracijo