Základní kontejnery jsou:¶

  • str (string neboli textový řetězec) – posloupnost znaků
  • list (seznam) – modifikovatelná (mutable) posloupnost libovolných objektů
  • tuple (n-tice) – nemodifikovatelná (immutable) posloupnost libovolných objektů
  • set (množina) – datová struktura obsahující objekty, pro které není určené jejich vzájemné pořadí
  • dict (slovník) – datová struktura, která představuje zobrazení z množiny klíčů (keys) na libovolné hodnoty (values)
In [41]:
string = "ahoj!"
seznam  = [0, "A", 3]
ntice   = (0, "A", 3)
množina = {0, "A", 3}

print("string: ", string,  type(string))
print("seznam: ", seznam,  type(seznam))
print("ntice:  ", ntice,   type(ntice))
print("množina:", množina, type(množina))
string:  ahoj! <class 'str'>
seznam:  [0, 'A', 3] <class 'list'>
ntice:   (0, 'A', 3) <class 'tuple'>
množina: {0, 3, 'A'} <class 'set'>
In [43]:
# kontejnery můžeme mezi sebou převádět:
seznam  = [0, "A", 3]
ntice   = tuple(seznam)
množina = set(seznam)
seznam  = list(množina)
print("ntice:  ", ntice,   type(ntice))
print("množina:", množina, type(množina))
print("seznam: ", seznam,  type(seznam))
ntice:   (0, 'A', 3) <class 'tuple'>
množina: {0, 3, 'A'} <class 'set'>
seznam:  [0, 3, 'A'] <class 'list'>
In [51]:
# in / not in
s = (2, 5, 3, 21, 1)
if 38 in s:
    print("je tam")
else:
    print("neni tam")
neni tam
In [52]:
# iterace
for x in s:
    print(x, end = " ")
print(s)
2 5 3 21 1 (2, 5, 3, 21, 1)
In [11]:
# počet prvků
L = len(s)
L
Out[11]:
5
In [44]:
# indexace:
s = (2, 5, 3, 21, 1)
print(s[0])
print(s[-1])
2
1
In [45]:
# slicing:
s[2:5:2]
Out[45]:
(3, 1)
In [38]:
# změna hodnoty v cyklu:
s = [1, 3, 4, 8]
L = len(s)
print(s)
for i in range(L):
    s[i] *= 3
print(s)
[1, 3, 4, 8]
[3, 9, 12, 24]
In [50]:
# nepovedená změna hodnoty v cyklu:
s = [1, 3, 4, 8]
for x in s:
    x += 10
    print(x)
print(s)
11
13
14
18
[1, 3, 4, 8]
In [35]:
# pousta metod a operátorů pro seznamy
s = []
s.append(3)
s.insert(0, 5)
print(s)

s.sort()
print(s)
s.reverse()
print(s)

del s[-1]
s.remove(5)
print(s)
...
[5, 3]
[3, 5]
[5, 3]
[]
Out[35]:
Ellipsis
In [29]:
# typické využití tuple: funkce, která vrací více hodnot
def komplexni_cislo(z):
    return z.real, z.imag

z = 1 + 2j
x, y = komplexni_cislo(z)
dvojice = komplexni_cislo(z)

print(x, y)
print(dvojice)
1.0 2.0
(1.0, 2.0)
In [ ]: