-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdelo-z-objekti.qmd
executable file
·87 lines (65 loc) · 3.36 KB
/
delo-z-objekti.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
filters:
- line-highlight
format:
html:
code-link: true
---
# Delo z objekti
Gradivi za to poglavje sta
- <https://automatetheboringstuff.com/2e/chapter6/>
- poglavje [Nizi](https://lusy.fri.uni-lj.si/ucbenik/book/1206/index.html)
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.
```{python}
print(' Hello, World \n'.strip())
```
- `"locilo".join(seznam)` združi elemente seznama v niz in postavi `locilo` med posamezne elemente
```{python}
print('ABC'.join(['Moje', 'ime', 'je', 'Rok']))
```
- `niz.split(locilo)` vrne seznam, kjer so elementi posamezni deli niza, ki jih ločuje `locilo`. Privzeta vrednost za `locilo` je presledek.
```{python}
print("Moje ime je Rok.".split())
```
## 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.
```{python}
seznam = [9, 1, 4, 5, 6, 4] #<<
print("prej: ", seznam)
sortiran_seznam = sorted(seznam) #<<
print("potem: ", seznam)
print("vrnjeno:", sortiran_seznam)
```
```{python}
seznam = [9, 1, 4, 5, 6, 4] #<<
print("prej: ", seznam)
a = seznam.sort() #<<
print("potem: ", seznam)
print("vrnjeno:", a)
```