1 / 13

Python - seznami

Python - seznami. podseznami. Elementi. Dobimo nove sezname, oz. elemente a[i] i-ti element seznama a. Elemente štejemo od 0 naprej. Če je i negativen, potem štejemo od konca seznama proti začetku seznam = [10, 20, 30, 40] seznam[-1] 40 seznam[len(seznam) – 1]

ewa
Download Presentation

Python - seznami

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Python - seznami podseznami

  2. Elementi • Dobimo nove sezname, oz. elemente • a[i] • i-ti element seznama a. • Elemente štejemo od 0 naprej. • Če je i negativen, potem štejemo od konca seznama proti začetku • seznam = [10, 20, 30, 40] • seznam[-1] • 40 • seznam[len(seznam) – 1] • seznam[-3] == seznam[4 – 3] == 20

  3. Podseznami • Dobimo nove sezname, oz. elemente • T.i. rezanje ali kosanje (slicing) • Seznam, ki ga režemo, se ne spremeni • seznam = [10, 20, 30, 40] • srednjaDva = seznam[1:3] • a[i:j] • Podseznam od i-tega do j-tega elementa (j-ti element ni več zraven). Če spustimo i, se podseznam prične na začetku, če spustimo j, pa konča na koncu. • a[i:j] je [ai, ai+1, ..., aj-1] • a[:j] je [a0, a1, ..., aj-1] • a[i:] je [ai, ai+1, ..., an-1], kjer je n število elementov v seznamu a • a[:] je [a0, a1, ..., an-1], kjer je n število elementov v seznamu a

  4. Le zakaj sez[j] "ni zraven"? • Le zakaj je za • sez = ['a','b','c','d'] • res tole • sez [2:3] == ['c'] • in • sez[3:3] == [] • Hm, morda … • sez == sez[0:2] + sez[2:len(sez)] • kopija = sez[0:len(sez)] • In sez[i:j] je seznam s koliko elementi? • j – i • Na "drugo žogo" stvar le ni tako "nelogična"

  5. Rezanje • Lahko razmišljamo tudi takole • Meje rezin ne jemljemo kot indeks elementov • Ampak kot mesto možnih rezov • delovniDnevi = teden[1:6] 0 1 2 3 4 5 6 7 NED PON TOR SRE ČET PET SOB

  6. Rezanje, negativni indeksi • Uporabljamo lahko tudi negativne indekse • delovniDnevi = teden[1:-1] • Spustimo prvega in zadnjega • sez[:2] … prva dva • sez[:-2] … vsi, razen zadnjih dveh • sez[3 : ] … vsi, razen prvih treh • sez[-2:] … zadnja dva • sez[2:-2] … spustimo prva dva in zadnja dva

  7. Rezanje vrača nove sezname • >>> seznam • [10, 20, 30, 40] • >>> novSez = seznam[2:4] • >>> novSez • [30, 40] • >>> seznam • [10, 20, 30, 40] • In zato: • kopija = sez[:] • Dobimo pravo kopijo in ne "alias"

  8. Pozor • >>> seznam • [10, 20, 30, 40] • >>> seznamBrez = seznam[0:1] + seznam[len(seznam) -1 : len(seznam)] • >>> seznamBrez • [10, 40] • >>> seznamZadnja = seznam[0] + seznam[len(seznam) - 1] • >>> seznamZadnja • 50 • >>>

  9. Podseznami • a[i:j:k] • Podseznam od i-tega do j-tega elementa (j-ti element ni več zraven), pri čemer vzamemo vsak k-ti element • a[i:j:k] je [ai, ai+k, ai+2k, ...] do j-tega elementa • seznam = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] • večkratniki3 = sez[2:9:3] • liha =seznam[0:len(sez):2] • liha =seznam[::2] • soda=seznam[1::2] • >>> print(seznam, večkratniki3, liha, soda, sep = '\n') • [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] • [3, 6, 9] • [1, 3, 5, 7, 9] • [2, 4, 6, 8, 10]

  10. Kaj pa tole? • seznam = ['Andrej', 'Bojan', 'Cene', 'Darko', 'Egon', 'Franc'] • seznam[len(seznam)::-1] • seznam[::-1] • seznam[-2:] • defkajPočnem(seznam): • return seznam == seznam[::-1]

  11. Uporaba rezanja za vrivanje • Vstavi (vrini) element na mesto 4 • seznam = ['Andrej', 'Bojan', 'Cene', 'Darko', 'Egon', 'Franc'] • seznam = seznam[:4] + 'Dejan' + seznam[4:] • No, gre tudi (celo hitreje) z • seznam.insert(4, 'Dejan') • Prej: • Naredili nov seznam in ga potem "shranili" v seznam • Potem • Spremenili obstoječ seznam

  12. In brisanje • seznamFantov = ['Andrej', 'Bojan', 'Cene', 'Darko', 'Egon', 'Franc'] • Bojan in Cene sta se poročila • seznamFantov = seznamFantov[:1] + seznamFantov[3:] • ali pa • del seznamFantov[1:3] • ali pa • seznamFantov[1:3] = []

  13. In zamenjavo (ter dodajanje) • seznamFantov = ['Andrej', 'Bojan', 'Cene', 'Darko', 'Egon', 'Franc'] • Bojan in Cene sta postala 'Brane' in 'Centa' • seznamFantov[1:3] = ['Brane', 'Centa'] • Franc je sedaj France, v klub pa je pripeljal še Gregorja • seznamFantov[-1:] = ['France', 'Gregor']

More Related