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 [ ]: