@@ -38,9 +38,9 @@ každá online služba má seznam uživatelů.
3838
3939
4040Hodnoty v seznamu můžou být jakéhokoli typu.
41- Dokonce můžeme různé typy míchat v jednom seznamu
41+ Dokonce můžeš různé typy míchat v jednom seznamu
4242(i když s takovými namixovanými seznamy se
43- příliš často nesetkáme – více se různé typy hodnot
43+ příliš často nesetkáš – více se různé typy hodnot
4444používají v <var >n</var >-ticích, o kterých si povíme později):
4545
4646``` python
@@ -65,12 +65,12 @@ print(kamaradka)
6565```
6666
6767Proměnná ` kamaradka ` obsahuje řetězec ` 'Žaneta' ` (který se už nedá změnit).
68- Metoda ` upper() ` vytvoří a vrátí * nový* řetězec.
68+ Metoda ` upper() ` vytvoří a vrátí * nový* řetězec ` 'ŽANETA' ` .
6969Výsledná hodnota se ale v našem programu nevyužije – Python ji vypočítá,
7070ale pak na ni „zapomene“.
7171
7272Oprava je snadná: výsledek uložit do proměnné.
73- Často budeš chtít takový výsledek uložit do původní proměnné:
73+ Často budeš chtít takový výsledek uložit zpátky do původní proměnné:
7474
7575``` python
7676kamaradka = kamaradka.upper()
@@ -97,7 +97,7 @@ Ty se měnit dají.
9797Základní způsob, jak změnit seznam, je přidání
9898prvku na konec pomocí metody ` append ` .
9999Ta * nic nevrací* (resp. vrací ` None ` ), ale „na místě” (angl. * in place* ) změní
100- seznam, na kterém pracuje. Vyzkoušej si to:
100+ seznam, se kterým pracuje. Vyzkoušej si to:
101101
102102``` pycon
103103>>> zviratka = [' pes' , ' kočka' , ' králík' ]
@@ -109,7 +109,7 @@ seznam, na kterém pracuje. Vyzkoušej si to:
109109```
110110
111111Všimni si, že proměnná ` zviratka ` se nastavuje jen na začátku.
112- V celém programu výše jen jeden seznam – na začátku má tři prvky, pak
112+ V celém programu výše je jen jeden seznam – na začátku má tři prvky, pak
113113mu jeden přibude, ale stále je to jeden a ten samý seznam.
114114
115115Takové měnění může být občas překvapující,
@@ -122,7 +122,7 @@ a = [1, 2, 3] # Vytvoření seznamu
122122b = a # Tady se nový seznam nevytváří!
123123
124124# seznam vytvořený v prvním řádku má teď dvě jména: "a" a "b",
125- # ale stále pracujeme jenom s jedním seznamem
125+ # ale stále pracuješ jenom s jedním seznamem
126126
127127print (b)
128128a.append(4 )
@@ -132,8 +132,8 @@ print(b)
132132## Další způsoby, jak měnit seznamy
133133
134134Kromě metody ` append ` , která přidává jediný prvek na konec, existuje
135- spousta metod, které mění seznamy.
136- Všechny udělají přímo v daném seznamu, a (kromě ` pop ` ) vrací ` None ` :
135+ spousta dalších metod, které seznamy mění .
136+ Všechny udělají změny přímo v daném seznamu a (kromě ` pop ` ) vrací ` None ` :
137137
138138* ` extend() ` přidá více prvků najednou,
139139* ` insert() ` přidá prvek na danou pozici,
@@ -162,19 +162,17 @@ zviratka.clear() # []
162162
163163Často budeš ze seznamu chtít vybrat prvek na určité pozici.
164164To funguje jako u řetězců: do hranatých závorek dáš číslo prvku.
165- Stejně jako u řetězců se čísluje od nuly a záporná čísla označují prvky
166- od konce.
165+ Stejně jako u řetězců se čísluje od nuly a záporná čísla číslují od konce.
167166
168167``` python
169168zviratka = [' pes' , ' kočka' , ' králík' ]
170169print (zviratka[2 ])
171170```
172171
173172Hranatými závorkami můžeš získat i podseznam.
174- [ Diagram z materiálů k řetězcům] ({{ lesson_url('beginners/str')}}#slicing-diagram)
173+ [ Diagram z materiálů k řetězcům] ({{ lesson_url('beginners/str')}}#slicing-diagram)
175174ukazuje, jak u takového „sekání” číslovat:
176- funguje to stejně, jen místo menšího řetězce
177- dostaneš menší seznam.
175+ funguje to stejně, jen místo menšího řetězce dostaneš menší seznam.
178176
179177``` python
180178print (zviratka[2 :- 3 ])
@@ -209,8 +207,8 @@ print(zviratka)
209207
210208### Mazání prvků
211209
212- Přiřazením do podseznamu se dá i změnit délka
213- seznamu, nebo některé prvky úplně odstranit:
210+ Přiřazením do podseznamu můžeš i změnit délku
211+ seznamu nebo některé prvky úplně odstranit:
214212
215213``` python
216214zviratka = [' pes' , ' kočka' , ' králík' ]
@@ -220,11 +218,12 @@ cisla[1:-1] = []
220218print (zviratka)
221219```
222220
223- Tenhle zápis pro mazání prvků je ale docela
224- nepřehledný, a proto na to máme zvláštní příkaz jménem ` del ` .
221+ Tenhle zápis pro mazání prvků je ale docela nepřehledný
222+ Proto na to existuje zvláštní příkaz jménem ` del ` .
225223Jak už jeho název (z angl. * delete* , smazat)
226224napovídá, smaže, co mu přijde pod ruku – jednotlivé
227225prvky seznamů, podseznamy, … a dokonce i proměnné!
226+ Zkus si:
228227
229228``` python
230229zviratka = [' pes' , ' kočka' , ' králík' , ' had' , ' ještěrka' , ' andulka' ]
@@ -241,10 +240,10 @@ del zviratka
241240print (zviratka)
242241```
243242
244- Nebo můžeš použít mazací metody zmíněné výše:
245- * ` pop ` , která odstraní * a vrátí* poslední prvek v seznamu,
246- * ` remove ` , která najde v seznamu první výskyt daného prvku a odstraní ho,
247- * ` clear ` , která vyprázdní celý seznam.
243+ Na mazání prvků můžeš použít i metody zmíněné výše:
244+ * ` pop ` odstraní * a vrátí* poslední prvek v seznamu,
245+ * ` remove ` najde v seznamu první výskyt daného prvku a odstraní ho,
246+ * ` clear ` vyprázdní celý seznam.
248247
249248``` python
250249balicek = [' eso' , ' sedma' , ' svršek' , ' sedma' , ' král' ]
@@ -261,7 +260,7 @@ print(balicek)
261260
262261## Řazení
263262
264- A taky tu máme metodu ` sort ` , která prvky seznamu seřadí .
263+ Metoda ` sort ` seřadí prvky seznamu .
265264
266265``` python
267266seznam = [4 , 7 , 8 , 3 , 5 , 2 , 4 , 8 , 5 ]
@@ -270,13 +269,11 @@ print(seznam)
270269```
271270
272271Aby se daly seřadit, musí být prvky seznamu vzájemně
273- * porovnatelné* – konktrétně na ně musí fungovat
274- operátor ` < ` .
272+ * porovnatelné* – konktrétně na ně musí fungovat operátor ` < ` .
275273Seznam s mixem čísel a řetězců tedy seřadit nepůjde.
276- Operátor ` < ` definuje i
277- jak přesně se řadí (např. čísla podle velikosti;
274+ Operátor ` < ` definuje i jak přesně ` sort ` řadí: čísla podle velikosti;
278275řetězce podle speciální „abecedy” která řadí
279- velká písmena za malá, česká až za anglická, atd.).
276+ velká písmena za malá, česká až za anglická, atd.
280277
281278Metoda ` sort ` zná pojmenovaný argument
282279` reverse ` . Pokud ho nastavíš na * True* , řadí se „naopak”.
@@ -289,7 +286,7 @@ print(seznam)
289286
290287## Známé operace se seznamy
291288
292- Spousta toho, co můžeme dělat s řetězci, má stejný
289+ Spousta toho, co můžeš dělat s řetězci, má stejný
293290účinek i u seznamů.
294291Třeba sečítání a násobení číslem:
295292
@@ -298,7 +295,7 @@ melodie = ['C', 'E', 'G'] * 2 + ['E', 'E', 'D', 'E', 'F', 'D'] * 2 + ['E', 'D',
298295print (melodie)
299296```
300297
301- Stejně jako u řetězců, sečítat jde jen seznam
298+ Stejně jako u řetězců jde sečítat jen seznam
302299se seznamem – ne třeba seznam s řetězcem.
303300
304301Další staří známí jsou funkce ` len ` ,
@@ -314,7 +311,7 @@ print('D' in melodie) # Je 'D' v seznamu?
314311Poslední tři se ale přece jen chovají kapku jinak:
315312u řetězců pracují s * podřetězci* ,
316313u seznamů jen s * jednotlivými* prvky.
317- Takže ačkoliv naše melodie obsahuje prvky
314+ Takže ačkoliv melodie výše obsahuje prvky
318315` 'D' ` a ` 'E' ` vedle sebe, ` 'DE' ` v seznamu není:
319316
320317``` python
@@ -325,7 +322,7 @@ print(melodie.index('DE'))
325322
326323## Seznam jako podmínka
327324
328- Seznam se dá použít v příkazu ` if ` (nebo ` while ` ) jako podmínka,
325+ Seznam můžeš použít v příkazu ` if ` (nebo ` while ` ) jako podmínka,
329326která platí, když v tom seznamu něco je.
330327Jinými slovy, ` seznam ` je tu „zkratka“ pro ` len(seznam) > 0 ` .
331328
@@ -336,19 +333,18 @@ else:
336333 print (' Seznam je prázdný!' )
337334```
338335
339- Podobně se dají v podmínce použít i řetězce.
336+ Podobně můžeš v podmínce použít i řetězce.
340337A dokonce i čísla – ta jako podmínka platí, pokud jsou nenulová.
341338
342339## Tvoření seznamů
343340
344341Tak jako funkce ` int ` převádí na
345342celá čísla a ` str ` na řetězce,
346343funkce ` list ` (angl. * seznam* ) převádí na seznam.
347- Jako argument jí předáme jakoukoli hodnotu,
344+ Jako argument jí můžeš předat jakoukoli hodnotu,
348345kterou umí zpracovat příkaz ` for ` .
349346Z řetězců udělá seznam znaků, z otevřeného souboru
350- udělá seznam řádků, z ` range ` udělá
351- seznam čísel.
347+ udělá seznam řádků, z ` range ` udělá seznam čísel.
352348
353349``` python
354350abeceda = list (' abcdefghijklmnopqrstuvwxyz' )
@@ -358,8 +354,7 @@ print(cisla)
358354```
359355
360356I ze seznamu udělá funkce ` list ` seznam.
361- To může znít zbytečně, ale není – vytvoří se
362- totiž * nový* seznam.
357+ To může znít zbytečně, ale není – vytvoří se totiž * nový* seznam.
363358Bude mít sice stejné prvky ve stejném pořadí,
364359ale nebude to ten samý seznam:
365360měnit se bude nezávisle na tom starém.
@@ -371,13 +366,14 @@ b = list(a)
371366print (b)
372367a.append(4 )
373368print (b)
369+ print (a)
374370```
375371
376372Další způsob, jak tvořit seznamy
377373(zvláště složitější), je nejdřív udělat prázdný
378374seznam a pak ho postupně naplnit pomocí funkce ` append ` .
379375Třeba pokud z nějakého důvodu chceš seznam
380- mocnin dvou, projdi čísla, kterými chceme mocnit,
376+ mocnin dvou, projdi čísla, kterými chceš mocnit,
381377cyklem ` for ` a pro každé z nich
382378do seznamu přidej příslušnou mocninu:
383379
@@ -405,7 +401,7 @@ Seznamy a řetězce jsou druhy „sekvencí”,
405401takže snad nepřekvapí, že se dá různě převádět
406402z jednoho typu na druhý.
407403Funkce ` list ` vytvoří z řetězce seznam znaků.
408- Když chceme dostat seznam slov, použijeme
404+ Když chceš dostat seznam slov, použij
409405na řetězci metodu ` split ` (angl. * rozdělit* ):
410406
411407``` python
@@ -414,8 +410,8 @@ print(slova)
414410```
415411
416412Metoda ` split ` umí brát i argument.
417- Pokud ho předáme, místo mezer (a nových řádků)
418- se řetězec „rozseká” daným oddělovačem .
413+ Pokud ho předáš řetězec „rozseká” daným oddělovačem
414+ (místo mezer a nových řádků) .
419415Takže když máš nějaká data oddělená čárkami,
420416použíj ` split ` s čárkou:
421417
@@ -427,9 +423,8 @@ print(zaznamy)
427423Chceš-li spojit seznam řetězců zase dohromady
428424do jediného řetězce, použij metodu ` join ` (angl. * spojit* ).
429425Pozor, tahle metoda se volá na * oddělovači* ,
430- tedy řetězci, kterým se jednotlivé kousky „slepí”
431- dohromady; a jako argument bere seznam jednotlivých
432- řetězců.
426+ tedy na řetězci, kterým se jednotlivé kousky „slepí” dohromady.
427+ Seznam jednotlivých řetězců bere jako argument.
433428
434429``` python
435430veta = ' ' .join(slova)
@@ -438,12 +433,12 @@ print(veta)
438433
439434## Seznamy a náhoda
440435
441- Modul ` random ` obsahuje dvě funkce, které se hodí k seznamům.
442- Jako ` random.randrange ` , obě mají něco
443- společného s náhodou .
436+ Modul ` random ` obsahuje funkce, které mají něco společného s náhodou:
437+ třeba nám už známou ` random.randrange ` .
438+ Podívejme se na dvě další, které se hodí k seznamům .
444439
445440Funkce ` shuffle ` seznam „zamíchá” – všechny prvky náhodně popřehází.
446- Jako metoda ` sort ` i funkce ` shuffle ` nic nevrací.
441+ Seznam změní „na místě“ a nic nevrací – podobně jako metoda ` sort ` .
447442
448443``` python
449444import random
@@ -479,17 +474,16 @@ Může třeba obsahovat i další seznamy:
479474seznam_seznamu = [[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]]
480475```
481476
482- Takový seznam se chová docela normálně – jdou
483- z něj třeba brát jednotlivé prvky
484- (které jsou ovšem taky seznamy):
477+ Takový seznam se chová docela normálně – můžeš z něj třeba brát jednotlivé
478+ prvky (které jsou ovšem taky seznamy):
485479
486480``` python
487481prvni_seznam = seznam_seznamu[0 ]
488482print (prvni_seznam)
489483```
490484
491485A protože jsou prvky samy seznamy,
492- můžeme mluvit o věcech jako „první prvek druhého seznamu”:
486+ dá se mluvit o věcech jako „první prvek druhého seznamu”:
493487
494488``` python
495489druhy_seznam = seznam_seznamu[1 ]
@@ -498,7 +492,7 @@ print(prvni_prvek_druheho_seznamu)
498492```
499493
500494A protože výraz ` seznam_seznamu[1] `
501- označuje seznam, můžeme brát prvky přímo z něj:
495+ označuje seznam, můžeš brát prvky přímo z něj:
502496
503497``` python
504498prvni_prvek_druheho_seznamu = (seznam_seznamu[1 ])[0 ]
@@ -510,10 +504,9 @@ Neboli:
510504prvni_prvek_druheho_seznamu = seznam_seznamu[1 ][0 ]
511505```
512506
513- A má tahle věc nějaké použití, ptáš se?
514- Stejně jako vnořené cykly ` for `
515- nám umožnily vypsat tabulku, vnořené seznamy
516- nám umožní si tabulku „zapamatovat”.
507+ A má tahle věc nějaké použití?
508+ Stejně jako vnořené cykly ` for ` ti umožnily vypsat tabulku, vnořené seznamy
509+ ti umožní si tabulku „zapamatovat”.
517510
518511``` python
519512def vytvor_tabulku (velikost = 11 ):
0 commit comments