Skip to content

Commit 885e8b1

Browse files
committed
Reword lesson on zip & enumerate
1 parent 38a829a commit 885e8b1

1 file changed

Lines changed: 23 additions & 13 deletions

File tree

lessons/beginners/zip-enumerate/index.md

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Spousta těchto typů umí něco navíc: zjistit jestli obsahují nějaký prvek
1717
(`'abc'.upper()`).
1818
Nic z toho ale není potřeba, aby byl objekt iterovatelný.
1919

20-
Podívejme se na dva dalších iterovatelné objekty: `enumerate` a `zip`.
20+
Podívejme se na dva další iterovatelné objekty: `enumerate` a `zip`.
2121

2222

2323
## Enumerate: očíslování sekvence
@@ -61,18 +61,20 @@ jejíž prvky jsou dvojice.
6161

6262
## Rozbalování v cyklu for
6363

64-
„Trpasličí“ cyklus se dá rozepsat takto:
64+
Cyklus `for` umíme rozepsat: opakuje se v něm nastavení proměnné (které dělá
65+
`for` za tebe), pak tělo cyklu, a znovu nastavení proměnné, tělo cyklu, atd.
66+
Pro „trpasličí“ cyklus to je:
6567

6668
```python
67-
dvojice = 0, 'Prófa' # toto dělá `for`
69+
dvojice = 0, 'Prófa' # nastavení proměnné dělá `for`
6870
index, trpaslik = dvojice
6971
print(f'Na pozici {index} je {trpaslik}!')
7072

71-
dvojice = 1, 'Stydlín' # toto dělá `for`
73+
dvojice = 1, 'Stydlín' # nastavení proměnné dělá `for`
7274
index, trpaslik = dvojice
7375
print(f'Na pozici {index} je {trpaslik}!')
7476

75-
dvojice = 2, 'Dřímal' # toto dělá `for`
77+
dvojice = 2, 'Dřímal' # nastavení proměnné dělá `for`
7678
index, trpaslik = dvojice
7779
print(f'Na pozici {index} je {trpaslik}!')
7880

@@ -83,13 +85,13 @@ Kdybys to psal{{a}} ručně, lze to zjednodušit – přiřadit do dvou proměnn
8385
najedno, bez pomocné `dvojice`:
8486

8587
```python
86-
index, trpaslik = 0, 'Prófa' # toto by mohl dělat `for`
88+
index, trpaslik = 0, 'Prófa' # nastavení proměnných
8789
print(f'Na pozici {index} je {trpaslik}!')
8890

89-
index, trpaslik = 1, 'Stydlín' # toto by mohl dělat `for`
91+
index, trpaslik = 1, 'Stydlín' # nastavení proměnných
9092
print(f'Na pozici {index} je {trpaslik}!')
9193

92-
index, trpaslik = 2, 'Dřímal' # toto by mohl dělat `for`
94+
index, trpaslik = 2, 'Dřímal' # nastavení proměnných
9395
print(f'Na pozici {index} je {trpaslik}!')
9496

9597
# A tak dále
@@ -134,7 +136,8 @@ for index, den in enumerate(dny):
134136
print(f'{cislo}. {den}')
135137
```
136138

137-
To je trošku kostrbaté, ale dá se to zjednodušit: funkce `enumerate` zná
139+
To je trošku kostrbaté, ale dá se to zjednodušit: buď jako
140+
`f'{cislo + 1}. {den}'`, nebo můžeš funkci `enumerate` předat
138141
pojmenovaný argument `start`, pomocí kterého umí sama
139142
počítat od jiného začátku než od nuly:
140143

@@ -162,9 +165,9 @@ Kdtyž tyto dva seznamy dáš funkci `zip`, dostaneš iterátor který příslu
162165
hodnoty spáruje.
163166
Bude tedy obsahovat:
164167

165-
* Dvojici prvních prvků obou seznamů
166-
* Dvojici druhých prvků obou seznamů
167-
* Dvojici třetích prvků obou seznamů
168+
* Dvojici prvních prvků obou seznamů: (`tráva`, `zelená`)
169+
* Dvojici druhých prvků obou seznamů: (`slunce`, `žluté`)
170+
* Dvojici třetích prvků obou seznamů: (`mrkev`, `oranžová`)
168171
* ...
169172

170173
``` python
@@ -190,10 +193,17 @@ Když si ale vypíšeš samotný objekt `zip`, zjistíš že o sobě nic moc ne
190193
– podobně jako `enumerate`:
191194

192195
```pycon
193-
>>> zip(veci, barvy, mista, cisla)
196+
>>> zip(veci, barvy, cisla)
194197
<zip object at 0x7f0db61b1f48>
195198
```
196199

200+
Po převedení na seznam se ale seznam <var>n</var>-tic „ukáže”:
201+
202+
```pycon
203+
>>> list(zip(veci, barvy, cisla))
204+
[('tráva', 'zelená', 0), ('slunce', 'žluté', 1), ('mrkev', 'oranžová', 2), ('řeka', 'modrá', 3)]
205+
```
206+
197207

198208
## Zip Longest: Pro ty co chtějí všechno
199209

0 commit comments

Comments
 (0)