Skip to content

Commit 0b1db6e

Browse files
committed
Rewordings for Lists and Tuples
1 parent 7965a36 commit 0b1db6e

2 files changed

Lines changed: 67 additions & 75 deletions

File tree

lessons/beginners/list/index.md

Lines changed: 51 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ každá online služba má seznam uživatelů.
3838

3939

4040
Hodnoty 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
4444
použí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

6767
Promě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'`.
6969
Výsledná hodnota se ale v našem programu nevyužije – Python ji vypočítá,
7070
ale pak na ni „zapomene“.
7171

7272
Oprava 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
7676
kamaradka = kamaradka.upper()
@@ -97,7 +97,7 @@ Ty se měnit dají.
9797
Základní způsob, jak změnit seznam, je přidání
9898
prvku na konec pomocí metody `append`.
9999
Ta *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

111111
Vš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
113113
mu jeden přibude, ale stále je to jeden a ten samý seznam.
114114

115115
Takové měnění může být občas překvapující,
@@ -122,7 +122,7 @@ a = [1, 2, 3] # Vytvoření seznamu
122122
b = 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

127127
print(b)
128128
a.append(4)
@@ -132,8 +132,8 @@ print(b)
132132
## Další způsoby, jak měnit seznamy
133133

134134
Kromě 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.
164164
To 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
169168
zviratka = ['pes', 'kočka', 'králík']
170169
print(zviratka[2])
171170
```
172171

173172
Hranatý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)
175174
ukazuje, 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
180178
print(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
216214
zviratka = ['pes', 'kočka', 'králík']
@@ -220,11 +218,12 @@ cisla[1:-1] = []
220218
print(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`.
225223
Jak už jeho název (z angl. *delete*, smazat)
226224
napovídá, smaže, co mu přijde pod ruku – jednotlivé
227225
prvky seznamů, podseznamy, … a dokonce i proměnné!
226+
Zkus si:
228227

229228
```python
230229
zviratka = ['pes', 'kočka', 'králík', 'had', 'ještěrka', 'andulka']
@@ -241,10 +240,10 @@ del zviratka
241240
print(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
250249
balicek = ['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
267266
seznam = [4, 7, 8, 3, 5, 2, 4, 8, 5]
@@ -270,13 +269,11 @@ print(seznam)
270269
```
271270

272271
Aby 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 `<`.
275273
Seznam 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

281278
Metoda `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ů.
294291
Tř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',
298295
print(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
302299
se seznamem – ne třeba seznam s řetězcem.
303300

304301
Další staří známí jsou funkce `len`,
@@ -314,7 +311,7 @@ print('D' in melodie) # Je 'D' v seznamu?
314311
Poslední tři se ale přece jen chovají kapku jinak:
315312
u řetězců pracují s *podřetězci*,
316313
u 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,
329326
která platí, když v tom seznamu něco je.
330327
Jiný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.
340337
A dokonce i čísla – ta jako podmínka platí, pokud jsou nenulová.
341338

342339
## Tvoření seznamů
343340

344341
Tak jako funkce `int` převádí na
345342
celá čísla a `str` na řetězce,
346343
funkce `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,
348345
kterou umí zpracovat příkaz `for`.
349346
Z ř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
354350
abeceda = list('abcdefghijklmnopqrstuvwxyz')
@@ -358,8 +354,7 @@ print(cisla)
358354
```
359355

360356
I 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.
363358
Bude mít sice stejné prvky ve stejném pořadí,
364359
ale nebude to ten samý seznam:
365360
měnit se bude nezávisle na tom starém.
@@ -371,13 +366,14 @@ b = list(a)
371366
print(b)
372367
a.append(4)
373368
print(b)
369+
print(a)
374370
```
375371

376372
Další způsob, jak tvořit seznamy
377373
(zvláště složitější), je nejdřív udělat prázdný
378374
seznam a pak ho postupně naplnit pomocí funkce `append`.
379375
Tř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,
381377
cyklem `for` a pro každé z nich
382378
do seznamu přidej příslušnou mocninu:
383379

@@ -405,7 +401,7 @@ Seznamy a řetězce jsou druhy „sekvencí”,
405401
takže snad nepřekvapí, že se dá různě převádět
406402
z jednoho typu na druhý.
407403
Funkce `list` vytvoří z řetězce seznam znaků.
408-
Když chceme dostat seznam slov, použijeme
404+
Když chceš dostat seznam slov, použij
409405
na řetězci metodu `split` (angl. *rozdělit*):
410406

411407
```python
@@ -414,8 +410,8 @@ print(slova)
414410
```
415411

416412
Metoda `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ů).
419415
Takže když máš nějaká data oddělená čárkami,
420416
použíj `split` s čárkou:
421417

@@ -427,9 +423,8 @@ print(zaznamy)
427423
Chceš-li spojit seznam řetězců zase dohromady
428424
do jediného řetězce, použij metodu `join` (angl. *spojit*).
429425
Pozor, 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
435430
veta = ' '.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

445440
Funkce `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
449444
import random
@@ -479,17 +474,16 @@ Může třeba obsahovat i další seznamy:
479474
seznam_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
487481
prvni_seznam = seznam_seznamu[0]
488482
print(prvni_seznam)
489483
```
490484

491485
A 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
495489
druhy_seznam = seznam_seznamu[1]
@@ -498,7 +492,7 @@ print(prvni_prvek_druheho_seznamu)
498492
```
499493

500494
A 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
504498
prvni_prvek_druheho_seznamu = (seznam_seznamu[1])[0]
@@ -510,10 +504,9 @@ Neboli:
510504
prvni_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
519512
def vytvor_tabulku(velikost=11):

0 commit comments

Comments
 (0)