@@ -143,7 +143,7 @@ Všechny udělají změny přímo v daném seznamu a (kromě `pop`) vrací `Non
143
143
144
144
* ` extend() ` přidá více prvků najednou,
145
145
* ` insert() ` přidá prvek na danou pozici,
146
- * ` pop() ` odebere * a vrátí* poslední prvek ,
146
+ * ` pop() ` odebere poslední prvek a * vrátí ho * (jako návratovou hodnotu) ,
147
147
* ` remove() ` odstraní první výskyt daného prvku,
148
148
* ` sort() ` seznam seřadí (řetězce podle “abecedy”, čísla vzestupně),
149
149
* ` reverse() ` obrátí pořadí prvků,
@@ -277,12 +277,12 @@ print(seznam)
277
277
Aby se daly seřadit, musí být prvky seznamu vzájemně
278
278
* porovnatelné* – konktrétně na ně musí fungovat operátor ` < ` .
279
279
Seznam s mixem čísel a řetězců tedy seřadit nepůjde.
280
- Operátor ` < ` definuje i jak přesně ` sort ` řadí: čísla podle velikosti;
281
- řetězce podle speciální „abecedy” která řadí
280
+ Operátor ` < ` definuje i jak přesně ` sort ` řadí: čísla vzestupně podle
281
+ velikosti; řetězce podle speciální „abecedy” která řadí
282
282
velká písmena za malá, česká až za anglická, atd.
283
283
284
- Metoda ` sort ` zná pojmenovaný argument
285
- ` reverse ` . Pokud ho nastavíš na * True* , řadí se naopak.
284
+ Metoda ` sort ` zná pojmenovaný argument ` reverse ` .
285
+ Pokud ho nastavíš na * True* , řadí se naopak – od největšího prvku po nejmenší .
286
286
287
287
``` python
288
288
seznam = [4 , 7 , 8 , 3 , 5 , 2 , 4 , 8 , 5 ]
@@ -318,7 +318,7 @@ Poslední tři se ale přece jen chovají kapku jinak:
318
318
u řetězců pracují s * podřetězci* ,
319
319
u seznamů jen s * jednotlivými* prvky.
320
320
Takže ačkoliv melodie výše obsahuje prvky
321
- ` 'D' ` a ` 'E' ` vedle sebe, ` 'DE' ` v seznamu není:
321
+ ` 'D' ` a ` 'E' ` vedle sebe, ` 'DE' ` ani ` ['D', 'E'] ` v seznamu není:
322
322
323
323
``` python
324
324
print (' DE' in melodie)
@@ -395,7 +395,7 @@ Podobným způsobem získáš seznam seznam `matka`, `babička`, `prababička`,
395
395
``` python
396
396
predkove = [' matka' ]
397
397
for pocet_pra in range (10 ):
398
- predkove.append(' pra' * pocet_pra + ' babička' )
398
+ predkove.append(( ' pra' * pocet_pra) + ' babička' )
399
399
print (predkove)
400
400
```
401
401
@@ -405,11 +405,31 @@ zavolej `append` pro všechny kombinace barev a hodnot:
405
405
``` python
406
406
balicek = []
407
407
for barva in ' ♠' , ' ♥' , ' ♦' , ' ♣' :
408
- for hodnota in list ( range ( 2 , 11 )) + [ ' J' , ' Q' , ' K' , ' A' ]:
409
- balicek.append(str ( hodnota) + barva)
408
+ for hodnota in [ ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' 10 ' , ' J' , ' Q' , ' K' , ' A' ]:
409
+ balicek.append(hodnota + barva)
410
410
print (balicek)
411
411
```
412
412
413
+ > [ note] Jde to líp?
414
+ > Psát do programu výčet po sobě jdoucích čísel,
415
+ > ` '2', '3', '4', '5', '6', '7', '8', '9', '10' ` ,
416
+ > není ideální – na takovou otročinu přece máme počítače!
417
+ > Zkus čísla dostat pomocí ` range ` .
418
+ > Ale pozor, není to úplně přímočaré:
419
+ >
420
+ > * Jaké argumenty dáš funkci ` range ` , abys dostal{{a}} čísla od 2 do 10?
421
+ > * Funkce ` range ` vrací sekvenci, která ale není seznam.
422
+ > Abys ji mohl{{a}} spojit se seznamem ` ['J', 'Q', 'K', 'A'] ` , budeš ji muset
423
+ > na seznam převést: ` list(range(...)) `
424
+ > * Abys mohl{{a}} čísla z ` range ` připojit k řetězci jako ` ♠ ` , budeš muset
425
+ > každou hodnotu před použitím převést na řetězec: ` str(hodnota) ` .
426
+ >
427
+ > Bonus: Jaký je nejkratší zápis, kterým můžeš zadat seznam
428
+ > ` ['J', 'Q', 'K', 'A'] ` ?
429
+ >
430
+ > Řešení najdeš v textu o kousek níže.
431
+
432
+
413
433
## Seznamy a řetězce
414
434
415
435
Seznamy a řetězce jsou druhy * sekvencí* .
@@ -458,9 +478,12 @@ Seznam změní „na místě“ a nic nevrací (podobně jako metoda `sort`).
458
478
``` python
459
479
import random
460
480
481
+ ciselne_hodnoty = list (range (2 , 11 ))
482
+ pismenne_hodnoty = list (' JQKA' )
483
+
461
484
balicek = []
462
485
for barva in ' ♠' , ' ♥' , ' ♦' , ' ♣' :
463
- for hodnota in list ( range ( 2 , 11 )) + [ ' J ' , ' Q ' , ' K ' , ' A ' ] :
486
+ for hodnota in ciselne_hodnoty + pismenne_hodnoty :
464
487
balicek.append(str (hodnota) + barva)
465
488
print (balicek)
466
489
0 commit comments