Skip to content

Commit 47bc64f

Browse files
committed
Split the text on list-valued dicts into its own lesson
1 parent 1398f8f commit 47bc64f

5 files changed

Lines changed: 70 additions & 66 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 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 napasl{{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 nebere 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+
Pokus se Katka se 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

lessons/beginners/dict/index.md

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -245,71 +245,6 @@ print(barvy_po_tydnu['jablko'])
245245
```
246246

247247

248-
## Více hodnot v jednom záznamu
249-
250-
Ke každému klíči může patřit jen jedna hodnota.
251-
Jak bys zařídil{{a}}, aby hodnot víc?
252-
253-
Řekněme, že bys chtěl{{a}} do slovníku uložit tyto telefonní kontakty:
254-
255-
* Katka:
256-
* 4925219
257-
* Jirka:
258-
* 7477058
259-
* 3251156
260-
* Verča:
261-
* 1019103
262-
263-
Jak na to?
264-
Jednoduchý slovník použít nemůžeš. Pozor na následující zápis!
265-
266-
```python
267-
kontakty = {
268-
'Katka': '4925219',
269-
'Jirka': '7477058',
270-
'Jirka': '3251156',
271-
'Verča': '1019103',
272-
}
273-
```
274-
275-
Python v tomto případě jednotlivé záznamy uloží postupně,jako kdybys napasl{{a}}:
276-
277-
```python
278-
kontakty = {}
279-
kontakty['Katka'] = '4925219'
280-
kontakty['Jirka'] = '7477058'
281-
kontakty['Jirka'] = '3251156'
282-
kontakty['Verča'] = '1019103'
283-
```
284-
285-
A ve výsledku bude mít `'Jirka'` uložené jen jedno číslo.
286-
Python tohle nebere jako chybu, ačkoli to často není to, co chceš.
287-
288-
Protože ve slovníku může být každému klíči přiřazena jen jedna hodnota,
289-
bude potřeba více hodnot směstnat do jedné.
290-
Každému kontaktu můžeš přiřadit *seznam* čísel:
291-
292-
```python
293-
kontakty = {
294-
'Katka': ['4925219'],
295-
'Jirka': ['7477058', '3251156'],
296-
'Verča': ['1019103'],
297-
}
298-
```
299-
300-
Výraz jako `kontakty['Katka']` pak označuje seznam,
301-
Pokus se Katka se přestěhuje do zahraničí a pořídí si nové číslo,
302-
můžeš napsat:
303-
304-
```python
305-
kontakty['Katka'].append('+897 3788509')
306-
print(len(kontakty['Katka']))
307-
print(kontakty['Katka'][-1])
308-
del kontakty['Katka'][0]
309-
print(kontakty['Katka'])
310-
```
311-
312-
313248
## Typy klíčů a hodnot
314249

315250
Do slovníku můžeš uložit použít jakoukoli hodnotu: řetězce, seznamy, nebo čísla.

lessons/beginners/dict/info.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ attribution:
77
Poděkování patří hlavně: Davidovi (dakf), Kristýně Kumpánové,
88
Veronice Gabrielové, Tomáši Ehrlichovi, Aničce Jaegerové,
99
Matějovi Stuchlíkovi, Filipovi Sivákovi a Juraji M. Bezručkovi.
10-
- Pro PyLadies CZ upravil Petr Viktorin, 2015-2020.
10+
- Pro PyLadies CZ upravil Petr Viktorin, 2015-2021.
1111
license: cc-by-sa-40

0 commit comments

Comments
 (0)