5  Delo z objekti

Gradivi za to poglavje sta

Uporabna je tudi dokumentacija za različne tipe https://docs.python.org/3/tutorial/datastructures.html

Metod za sezname in nize je veliko. Spodaj je naštetih nekaj najpogosteje uporabljanih. Celoten seznam je v uradni dokumentaciji: https://docs.python.org/3/library/stdtypes.html#string-methods

Ponavadi lahko z Googlom hitro najdemo metodo, ki jo potrebujemo, če opišemo, kaj želimo narediti (npr. s python count characters in string hitro najdemo count() in primere uporabe).

Pretvarjanje med tipi

Spremenljivko a lahko pretvorimo v drug tip s funkcijami:

  • int(a) vrne celo število
  • float(a) vrne decimalno število
  • str(a) vrne niz
  • list(a) vrne seznam
  • tuple(a) vrne nabor
  • set(a) vrne množico

Metode za nize

  • niz.count(znak) vrne število pojavitev znaka v nizu
  • niz.index(znak) vrne indeks, na katerem se znak prvič pojavi; če ne obstaja sproži napako
  • niz.replace(niz1, niz2) vrne niz, kjer so podnizi enaki niz1 zamenjani z niz2
  • niz.lower() in niz.upper() vrne niz, kjer iz malih črk naredi velike ali obratno
  • niz.islower() in niz.isupper() vrne True, če je niz iz samih malih črk oz. velikih črk
  • niz.strip() vrne niz, kjer z leve in desne strani odstrani “whitespace characters” (presledki, tab, \n). Lahko podamo neobvezni argument, s katerim določimo, katere znake naj odstrani z leve in desne. Obstajata tudi metodi .rstrip() in .lstrip(), ki odstranjujeta le z leve in desne.
print('    Hello, World    \n'.strip())
Hello, World
  • "locilo".join(seznam) združi elemente seznama v niz in postavi locilo med posamezne elemente
print('ABC'.join(['Moje', 'ime', 'je', 'Rok']))
MojeABCimeABCjeABCRok
  • niz.split(locilo) vrne seznam, kjer so elementi posamezni deli niza, ki jih ločuje locilo. Privzeta vrednost za locilo je presledek.
print("Moje ime je Rok.".split())
['Moje', 'ime', 'je', 'Rok.']

Metode za sezname

  • sez.append(element) doda element na konec seznama
  • sez.extend(sez2) na konec seznama sez pristavi seznam sez2, na kratko sez += sez2
  • sez.insert(i, x) na mesto z indeksom i vstavi element x
  • sez.remove(x) iz seznama odstrani prvo pojavitev elementa x
  • sez.pop(i) odstrani element na indeksu i in ga vrne; če i ne podamo je to zadnji element
  • sez.index(x) vrne prvi indeks, na katerem se nahaja vrednost x
  • sez.count(x) vrne število pojavitev x v seznamu
  • sez.sort() razvrsti seznam števil po velikosti / nizov po abecedi

Sortiranje seznamov

Za sortiranje lahko uporabimo funkcijo sorted(seznam), ki vrne sortiran seznam ali pa metodo seznam.sort(), ki spremeni originalni seznam, tako, da je sortiran. Metoda .sort() ne vrne nič. Obema funkcijama lahko podamo neobvezni argument reversed=True, ki seznam sortira v nasprotnem vrstnem redu.

seznam = [9, 1, 4, 5, 6, 4] 
print("prej:   ", seznam)
sortiran_seznam = sorted(seznam) 
print("potem:  ", seznam)
print("vrnjeno:", sortiran_seznam)
prej:    [9, 1, 4, 5, 6, 4]
potem:   [9, 1, 4, 5, 6, 4]
vrnjeno: [1, 4, 4, 5, 6, 9]
seznam = [9, 1, 4, 5, 6, 4] 
print("prej:   ", seznam)
a = seznam.sort() 
print("potem:  ", seznam)
print("vrnjeno:", a)
prej:    [9, 1, 4, 5, 6, 4]
potem:   [1, 4, 4, 5, 6, 9]
vrnjeno: None