@@ -33,8 +33,8 @@ trpaslici = ['Prófa', 'Stydlín', 'Dřímal', 'Kejchal', 'Štístko',
3333```
3434
3535Když na něj použiješ ` enumerate ` , dostaneš objekt ` enumerate ` ,
36- který podobně jako ` range() ` neukáže svůj obsah „ rovnou“ ,
37- ale můžeš se „do něj“ podívat převedením na seznam.
36+ který podobně jako ` range() ` neukáže svůj obsah rovnou,
37+ ale můžeš se „do něj podívat“ převedením na seznam.
3838Uvidíš tak seznam dvojic (číslo, trpaslík):
3939
4040``` pycon
@@ -82,7 +82,7 @@ print(f'Na pozici {index} je {trpaslik}!')
8282```
8383
8484Kdybys to psal{{a}} ručně, lze to zjednodušit – přiřadit do dvou proměnných
85- najedno , bez pomocné ` dvojice ` :
85+ najednou , bez pomocné proměnné ` dvojice ` :
8686
8787``` python
8888index, trpaslik = 0 , ' Prófa' # nastavení proměnných
@@ -97,8 +97,8 @@ print(f'Na pozici {index} je {trpaslik}!')
9797# A tak dále
9898```
9999
100- A ` for ` tohle ve skutečnosti umí: místo do proměnné ` dvojice ` může přiřadit
101- rovnou do dvou proměnných ` index, trpaslik ` :
100+ Cyklus ` for ` tohle ve skutečnosti umí: místo do proměnné ` dvojice ` může
101+ přiřadit rovnou do dvou proměnných ` index, trpaslik ` :
102102
103103``` python
104104for index, trpaslik in enumerate (trpaslici):
@@ -154,29 +154,43 @@ for index, den in enumerate(dny, start=1):
154154
155155Další iterátor <var >n</var >-tic je funkce ` zip ` , která umí projít dvě sekvence
156156naráz.
157+
157158Řekněme že máš seznam věcí a k nim příslušných barev:
158159
159160``` python
160161veci = [' tráva' , ' slunce' , ' mrkev' , ' řeka' ]
161162barvy = [' zelená' , ' žluté' , ' oranžová' , ' modrá' ]
162163```
163164
164- Kdtyž tyto dva seznamy dáš funkci ` zip ` , dostaneš iterátor který příslušné
165- hodnoty spáruje.
166- Bude tedy obsahovat:
165+ Když na ně zavoláš ` zip ` , dostaneš iterátor, který (podobně jako ` enumerate `
166+ nebo ` range ` ) sám od sebe nic neříká:
167+
168+ ``` pycon
169+ >>> zip (veci, barvy)
170+ <zip object at 0x7f0db61b1f48>
171+ ```
172+
173+ Po převedení na seznam se ale ukáže seznam odpovídajících si dvojic:
174+
175+ * Dvojice prvních prvků obou seznamů: (` tráva ` , ` zelená ` )
176+ * Dvojice druhých prvků obou seznamů: (` slunce ` , ` žluté ` )
177+ * Dvojice třetích prvků obou seznamů: (` mrkev ` , ` oranžová ` )
178+ * A tak dál…
179+
180+ ``` pycon
181+ >>> list (zip (veci, barvy))
182+ [('tráva', 'zelená'), ('slunce', 'žluté'), ('mrkev', 'oranžová'), ('řeka', 'modrá')]
183+ ```
167184
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á ` )
171- * ...
185+ Takové dvojice jsou připravené na to, že je rozbalíš v cyklu ` for ` :
172186
173187``` python
174188for vec, barva in zip (veci, barvy):
175189 print (f " { vec} je { barva} " )
176190```
177191
178192Funguje to i pro více sekvencí.
179- V následujícím případě je výsledný ` zip ` iterátor čtveřic (věc, barva,
193+ V následujícím případě vznikne iterátor čtveřic (věc, barva,
180194místo, číslo):
181195
182196``` python
@@ -189,21 +203,6 @@ for vec, barva, misto, cislo in zip(veci, barvy, mista, cisla):
189203 print (f " { cislo} . { barva} { vec} je { misto} " )
190204```
191205
192- Když si ale vypíšeš samotný objekt ` zip ` , zjistíš že o sobě nic moc neřekne
193- – podobně jako ` enumerate ` :
194-
195- ``` pycon
196- >>> zip (veci, barvy, cisla)
197- <zip object at 0x7f0db61b1f48>
198- ```
199-
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-
207206
208207## Zip Longest: Pro ty co chtějí všechno
209208
@@ -217,7 +216,7 @@ for vec, barva in zip(veci, barvy):
217216```
218217
219218{% filter solution %}
220- Výsledek ` zip ` skončí hned když „dojde“ nejkratší sekvence.
219+ Iterátor ` zip ` skončí hned když dojdou prvky nejkratší sekvence.
221220{% endfilter %}
222221
223222Občas je potřeba projít všechny záznamy.
@@ -229,7 +228,7 @@ for vec, barva in zip_longest(veci, barvy, fillvalue='(nevím)'):
229228 print (f " { vec} je { barva} " )
230229```
231230
232- Argument ` fillvalue ` říká, co se doplní za chybějící hodnoty.
231+ Pojmenovaný argument ` fillvalue ` říká, co se doplní za chybějící hodnoty.
233232Když ho nezadáš, doplní se ` None ` („nic“, hodnota kterou např. vrací procedury).
234233To se často používá, když je pro chybějící hodnoty potřeba nějaká
235234složitější logika:
0 commit comments