Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions courses/pyladies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ plan:
- lesson: beginners/dict
- lesson: intro/json
- lesson: projects/github-api
- lesson: beginners/dict-with-list-values
- title: Slovníkový tahák
url: https://pyvec.github.io/cheatsheets/dicts/dicts-cs.pdf
type: cheatsheet
Expand Down
63 changes: 63 additions & 0 deletions lessons/beginners/dict-with-list-values/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Více hodnot v jednom záznamu slovníku

Ke každému klíči může patřit jen jedna hodnota.
Jak bys zařídil{{a}}, aby hodnot bylo víc?

Řekněme, že bys chtěl{{a}} do slovníku uložit tyto telefonní kontakty:

* Katka:
* 4925219
* Jirka:
* 7477058
* 3251156
* Verča:
* 1019103

Jak na to?
Jednoduchý slovník použít nemůžeš. Pozor na následující zápis!

```python
kontakty = {
'Katka': '4925219',
'Jirka': '7477058',
'Jirka': '3251156',
'Verča': '1019103',
}
```

Python v tomto případě jednotlivé záznamy uloží postupně, jako kdybys napsal{{a}}:

```python
kontakty = {}
kontakty['Katka'] = '4925219'
kontakty['Jirka'] = '7477058'
kontakty['Jirka'] = '3251156'
kontakty['Verča'] = '1019103'
```

A ve výsledku bude mít `'Jirka'` uložené jen jedno číslo.
Python tohle nenahlásí jako chybu, ačkoli to často není to, co chceš.

Protože ve slovníku může být každému klíči přiřazena jen jedna hodnota,
bude potřeba více hodnot směstnat do jedné.
Každému kontaktu můžeš přiřadit *seznam* čísel:

```python
kontakty = {
'Katka': ['4925219'],
'Jirka': ['7477058', '3251156'],
'Verča': ['1019103'],
}
```

Výraz jako `kontakty['Katka']` pak označuje seznam.
Pokud se Katka přestěhuje do zahraničí a pořídí si nové číslo,
můžeš napsat:

```python
kontakty['Katka'].append('+897 3788509')
print(len(kontakty['Katka']))
print(kontakty['Katka'][-1])
del kontakty['Katka'][0]
print(kontakty['Katka'])
```
5 changes: 5 additions & 0 deletions lessons/beginners/dict-with-list-values/info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
title: Víc hodnot v jednom záznamu slovníku
style: md
attribution:
- Pro PyLadies CZ napsal Petr Viktorin, 2015-2021.
license: cc-by-sa-40
Loading