Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Martin Mareš
prm1
Commits
5bd00cb4
Commit
5bd00cb4
authored
Nov 18, 2019
by
Martin Mareš
Browse files
08: Množiny a slovníky
parent
24b0db21
Changes
2
Hide whitespace changes
Inline
Side-by-side
08-slovniky/08-slovniky.tex
0 → 100644
View file @
5bd00cb4
\documentclass
{
beamer
}
\usepackage
[utf8]
{
inputenc
}
\usepackage
[czech]
{
babel
}
\usepackage
{
palatino
}
\usepackage
{
verbatim
}
\usetheme
{
Warsaw
}
\title
{
Programování 1: Množiny a slovníky
}
\author
[Martin Mareš]
{
Martin Mareš
\\\texttt
{
mj@ucw.cz
}}
\institute
{
Katedra Aplikované Matematiky
\\
MFF UK Praha
}
\date
{
2019
}
\begin{document}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
footline
}{}
\setbeamerfont
{
title page
}{
family=
\rmfamily
}
\shorthandoff
{
"
}
\begin{frame}
\titlepage
\end{frame}
\input
../slidemac.tex
\def\{
{
\char
123
\relax
}
\def\}
{
\char
125
\relax
}
% ----------------------------------------------------------------------
\begin{frame}
{
Množiny
}
\py
{
%
zvířata =
\{
"pes", "pes", "kočka", "výr"
\}\\
zvířata
}{
%
\{
'výr', 'pes', 'kočka'
\}
}
\py
{
%
"kočka" in zvířata
}{
%
True
}
\py
{
%
"hroznýš" in zvířata
}{
%
False
}
\py
{
%
set(["a", "b", "c"])
}{
%
\{
'c', 'b', 'a'
\}
}
\py
{
%
set("abrakadabra")
}{
%
\{
'r', 'a', 'k', 'b', 'd'
\}
}
\py
{
%
set()
}{
%
set()
\cmt
{
(pozor,
{
\tt
\{\}
}
znamená něco jiného)
}
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
Operace s množinami
}
\py
{
%
a=set("abrakadabra")
\\
b=set("popokatepetl")
\\
"".join(sorted(a))
\cmt
{
(umí se chovat jako seznam)
}
}{
%
'abdkr'
}
\py
{
%
k
\&
b
\cmt
{
(průnik)
}
}{
%
\{
'k', 'a'
\}
}
\py
{
%
a | b
\cmt
{
(sjednocení)
}
}{
%
\{
'r','p','a','e','k','b','o','t','d','l'
\}
}
\py
{
%
a - b
\cmt
{
(rozdíl)
}
}{
%
\{
'r', 'd', 'b'
\}
}
\py
{
%
a.remove("r")
\cmt
{
(odebere prvek)
}
\\
b.add("b")
\cmt
{
(přidá prvek)
}
\\
a - b
}{
%
\{
'd'
\}
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
Slovníky
}
\py
{
%
teploty =
\{
"Praha": 17, "Dillí": 42, "Longyearbyen": -46
\}\\
teploty["Praha"]
}{
%
17
\cmt
{
(klíčem může být každý neměnný typ)
}
}
\py
{
%
teploty["Horní Dolní"] = 11
\\
del teploty["Horní Dolní"]
\cmt
{
(i pro pole)
}
\\
"Horní Dolní" in teploty
}{
%
False
}
\py
{
%
teploty["Peklo"]
}{
%
<chyba KeyError>
}
\py
{
%
teploty.get("Peklo")
}{
%
None
}
\py
{
%
teploty.get("Peklo", -999)
}{
%
-999
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
Cyklus přes prvky slovníku
}
\py
{
%
for k in teploty.keys():
\.\>
print(k)
}{
%
Praha
\\
Dillí
\\
Longyearbyen
}
\py
{
%
for v in teploty.values():
\.\>
print(v)
}{
%
17
\\
42
\\
-46
}
\py
{
%
for k, v in teploty.items():
\.\>
print(f"
\{
k
\}
=
\{
v
\}
")
}{
%
Praha = 17
\\
Dillí = 42
\\
Longyearbyen = -46
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
List comprehension pro množiny a slovníky
}
\py
{
%
\{
x**2 for x in range(5)
\}
}{
%
\{
0, 1, 4, 9, 16
\}
}
\py
{
%
\{
x: x**2 for x in range(5)
\}
}{
%
\{
0: 0, 1: 1, 2: 4, 3: 9, 4: 16
\}
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
Slovník s~defaulty
}
\py
{
%
from collections import defaultdict
\\
počet = defaultdict(int)
\\
počet['abc']
}{
%
0
}
\py
{
%
for w in "quick brown fox quick".split():
\.\>
počet[w] += 1
\\
list(počet.items())
}{
%
[('abc', 0), ('quick', 2), ('brown', 1), ('fox', 1)]
}
\py
{
%
podle
\_
délek = defaultdict(list)
\\
for w in "quick brown fox".split():
\.\>
podle
\_
délek[len(w)].append(w)
\\
list(podle
\_
délek.items())
}{
%
[(5, ['quick', 'brown']), (3, ['fox'])]
}
\end{frame}
% ----------------------------------------------------------------------
\end{document}
08-slovniky/Makefile
0 → 100644
View file @
5bd00cb4
SLIDES
=
08-slovniky.pdf
include
../Makerules
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment