|
| 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 | +``` |
0 commit comments