Skip to content

Commit b3d6f84

Browse files
authored
Modernize dicts lessons
#11
2 parents aa80745 + 8b1f459 commit b3d6f84

7 files changed

Lines changed: 492 additions & 193 deletions

File tree

courses/pyladies.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ plan:
129129
- lesson: beginners/dict
130130
- lesson: intro/json
131131
- lesson: projects/github-api
132+
- lesson: beginners/dict-with-list-values
132133
- title: Slovníkový tahák
133134
url: https://pyvec.github.io/cheatsheets/dicts/dicts-cs.pdf
134135
type: cheatsheet
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Více hodnot v jednom záznamu slovníku
2+
3+
Ke každému klíči může patřit jen jedna hodnota.
4+
Jak bys zařídil{{a}}, aby hodnot bylo víc?
5+
6+
Řekněme, že bys chtěl{{a}} do slovníku uložit tyto telefonní kontakty:
7+
8+
* Katka:
9+
* 4925219
10+
* Jirka:
11+
* 7477058
12+
* 3251156
13+
* Verča:
14+
* 1019103
15+
16+
Jak na to?
17+
Jednoduchý slovník použít nemůžeš. Pozor na následující zápis!
18+
19+
```python
20+
kontakty = {
21+
'Katka': '4925219',
22+
'Jirka': '7477058',
23+
'Jirka': '3251156',
24+
'Verča': '1019103',
25+
}
26+
```
27+
28+
Python v tomto případě jednotlivé záznamy uloží postupně, jako kdybys napsal{{a}}:
29+
30+
```python
31+
kontakty = {}
32+
kontakty['Katka'] = '4925219'
33+
kontakty['Jirka'] = '7477058'
34+
kontakty['Jirka'] = '3251156'
35+
kontakty['Verča'] = '1019103'
36+
```
37+
38+
A ve výsledku bude mít `'Jirka'` uložené jen jedno číslo.
39+
Python tohle nenahlásí jako chybu, ačkoli to často není to, co chceš.
40+
41+
Protože ve slovníku může být každému klíči přiřazena jen jedna hodnota,
42+
bude potřeba více hodnot směstnat do jedné.
43+
Každému kontaktu můžeš přiřadit *seznam* čísel:
44+
45+
```python
46+
kontakty = {
47+
'Katka': ['4925219'],
48+
'Jirka': ['7477058', '3251156'],
49+
'Verča': ['1019103'],
50+
}
51+
```
52+
53+
Výraz jako `kontakty['Katka']` pak označuje seznam.
54+
Pokud se Katka přestěhuje do zahraničí a pořídí si nové číslo,
55+
můžeš napsat:
56+
57+
```python
58+
kontakty['Katka'].append('+897 3788509')
59+
print(len(kontakty['Katka']))
60+
print(kontakty['Katka'][-1])
61+
del kontakty['Katka'][0]
62+
print(kontakty['Katka'])
63+
```
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
title: Víc hodnot v jednom záznamu slovníku
2+
style: md
3+
attribution:
4+
- Pro PyLadies CZ napsal Petr Viktorin, 2015-2021.
5+
license: cc-by-sa-40

0 commit comments

Comments
 (0)