Nizi v Pythonu

Nizi v Pythonu

Avtor: Daniel Prša

Splošno o nizih

V pythonu je niz (string) zaporedje znakov med enojnim ali dvojnim narekovajem, lahko je črka, število, ali katerikoli drugi znak.

beseda

niz1 = 'beseda' ali  niz1 = "beseda"

število:

niz2 = '2012'  ali  niz2 = "2012"

"mešano":

niz3 = '100 km/h' ali niz3 = "100 km/h"

Ko v pythonu - lupini preverjamo vrednost spremenljivke, se nam bo niz prikazal v enojnem narekovaju.

(niz1.png)
enojni narekovaji nam povedo, da imamo opravka z nizi

Posebni znaki

\n (nova vrsta)

      >>> niz = '8270 Krško\nSlovenija'
      >>> print (niz)
      8270 Krško
      Slovenija

      >>> niz[10]
      '\n'


\t (tabulator)

      >>> niz = '8270\tKrško'
      >>> print (niz)
      8270  Krško


\ \ (izpis poševnice)

      >>> niz = '8270\\Krško'
      >>> print (niz)
      8270\Krško


\' (enojni narekovaj)

      >>> niz = '8270 \'Krško\''
      >>> print (niz)
      8270 'Krško'


Pri angleščini, če vztrajamo pri enojnem narekovaju:

      >>> niz = 'it\'s ok'
      >>> niz
      "it's ok"

Klikni na gumb, če si želiš ogledati animacijo:

animacija

Posebni znaki

Dostop do posameznega znaka v nizu

Do nizov lahko dostopamo enako kot pri seznamih, to je preko indeksov. Prvi znak od leve proti desni ima indeks 0, drugi 1 in tako naprej. Lahko pa začnemo od zadnjega znaka, ta pa ima indeks -1, predzadnji -2 in tako naprej. Vzemimo primer:

 niz = 'ŠOLA' 

(indeksi.png)
indeksi v nizu

Izvedeti hočemo, kateri znak se nahaja npr. na tretjem mestu v nizu 'informatika'.

>>> niz = 'informatika'
>>> niz[2]
'f'

Ali pa dostop od zadnjega znaka:

>>> niz = 'samoevalvacija'
>>> niz[-3]
'i'

Rezanje (slicing) nizov - podnizi

Nize lahko režemo. Vzemimo primer:     >>> niz = 'informatika' 

V oglatem oklepaju vpišemo indeks znaka od katerega želimo izrez, nato dvopičje in indeks znaka, do katerega hočemo izrez. Pozor, znak z drugim podanim indeksom se ne izpiše.

    >>> niz[1:4]
    'nfo'

Lahko uporabimo samo indeks in nato dvopičje in dobimo podniz od "rezanega" indeksa do konca.

    >>> niz[2:]
    'formatika'

Če najprej vpišemo dvopičje in nato indeks, dobimo podniz od začetka pa do podanega indeksa.

    >>> niz[:3]
    'inf'

Če hočemo dobiti obrnjen niz, pa napišemo dvakrat dvopičje in -1

    >>> niz[::-1]
    'akitamrofni'

Še nekaj primerov:

(rezanje.png)
rezanje/slicing

Stikanje nizov

Nize lahko "seštevamo"

    >>> niz1 = 'Novo '
    >>> niz2 = 'mesto'
    >>> niz3 = niz1 + niz2
    >>> niz3
    'Novo mesto'

in "množimo"

    >>> niz = 'Primer'
    >>> niz2 = niz * 3
    >>> niz2
    'PrimerPrimerPrimer'

Primerjanje nizov

Dva niza primerjamo leksikografsko (kot so urejene besede v leksikonih) - najprej prva znaka, če sta enaka, še druga ...

Uporabljamo lahko operatorje:  <   >   <=   >=   ==   != 

Primerjajmo besedi dan in da.

    >>> 'dan' == 'dan'
    True
    >>> 'dan' == 'da'
    False
    >>> 'dan' > 'da'
    True


Lahko preverimo, ali se prvi niz nahaja kot podniz v drugem nizu. Uporabimo operatorja in   not in

Preverimo, ali se niz 'da' nahaja v nizu 'danes'

    >>> niz1 = 'da'
    >>> niz2 = 'danes'
    >>> niz1 in niz2
    True
    >>> niz1 not in niz2
    False


Lahko preverimo, ali sta niza isti/različen objekt. Uporabimo operatorja is   is not

Preverimo, ali sta niz 'da' in niz 'danes' ista objekta.

    >>> niz1 = 'da'
    >>> niz2 = 'danes'
    >>> niz1 is niz2
    False
    >>> niz1 is not niz2
    True

Funkcije, ki imajo niz za argument

Vgrajene funkcije lahko uporabljamo tudi na nizih. Poglejmo nekaj primerov:
len (niz) - vrne število znakov v nizu

    >>> niz = 'Kako si?'
    >>> len(niz)
    8

Na primeru vidimo, da je tudi presledek znak.


min(niz) – najmanjši znak v nizu
max (niz) – največji znak v nizu

    >>> niz = 'zelišča'
    >>> min(niz)
    'a'
    >>> max(niz)
    'š'

Šumniki pridejo na vrsto za "angleško abecedo".


list(niz) - vrne seznam znakov niza

    >>> niz = 'dijak'
    >>> list(niz)
    ['d', 'i', 'j', 'a', 'k']

Če hočemo seznam spremeniti nazaj v niz, uporabimo join

    ''.join(niz)

Funkcije, ki imajo niz za argument

Zgled: Obstoječi niz 'dijak' želimo spremeniti v 'vojak'

Kako bi se lotili naloge:

  • uporabimo funkcijo list in niz spremenimo v seznam
  • v seznamu indeks 0 in 1 ustrezno popravimo
  • z .join seznam povrnemo nazaj v niz

Vgrajene metode na nizih

Pri nizih imamo cel kup vgrajenih metod, ki služijo za prilagajanje oz. spreminjanje nizov, vendar pa same vrednosti niza ne spremenijo.


upper / lower

Če hočemo dobiti kopijo niza v velikih črkah uporabimo metodo upper . Metodo lower uporabimo, če hočemo dobiti kopijo niza predelanega v male črke:

   >>> niz = 'Sem SE zaTipkaL'
    >>> niz.upper()
    'SEM SE ZATIPKAL'
    >>> niz.lower()
    'sem se zatipkal'


replace

Kadar želimo na nizu kaj spremeniti ali zamenjati, je eden izmed načinov ta, da uporabimo metodo replace . V nizu matematika zamenjajmo vse a-je z o-ji:

    niz ='matematika'
    niz.replace('a','o')
    'motemotiko'


split

Metoda split vrne seznam nizov, ki jih loči presledek:

    >>> niz ='Ali si naredil domačo nalogo?'
    >>> niz.split()
    ['Ali', 'si', 'naredil', 'domačo', 'nalogo?']

Vgrajene metode na nizih

strip

Metoda vrne kopijo niza, kjer so na začetku in na koncu odstranjeni vsi beli znaki

>>> niz = ' presledek '
>>> niz.strip()
'presledek'


list

S to metodo spremenimo niz v seznam. Potem lahko posamezne elemente seznama spreminjamo:

    niz='politika'
    seznam = list(niz)
    ['p', 'o', 'l', 'i', 't', 'i', 'k', 'a']


format

S to metodo si lahko pomagamo, kadar želimo sestaviti niz, ki bo poleg navadnih znakov vseboval vrednosti drugih izrazov. Mesto v nizu kamor bi želeli vriniti vrednost izraza, posebej označimo z zavitimi oklepaji, v katere zapišemo zaporedno številko izraza (oštevilčimo jih od 0 naprej).

    >>> niz = 'Ime mi je {0}'
    >>> niz.format('Štefan')
    'Ime mi je Štefan'

Še nekaj primerov za format:

(format.png)
format


Več o vgrajenih metodah, si lahko prebereš tukaj

0%
0%