NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 3 - Vícerozměrné seznamy v Pythonu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
MBlack
Člen
Avatar
MBlack:13.4.2023 18:09

Lenost programátora.
...
Ano přesně tak.
Když už udáváte kdy je lepší používat OOP nežli 3D seznam.
Chtělo by to taky ukázku. s vysvětlením proč je to lepší tak, než onak.

 
Odpovědět
13.4.2023 18:09
Avatar
Marie Pazoutova:12.6.2023 16:17

Potěšilo by mě, kdyby poznámka na závěr byla podrobněji rozvedena - ideálně s ukázkou kódu.
"Na závěr dodejme, že někteří lidé, kteří neumí správně používat
objekty, využívají 2D seznamů k ukládání více údajů o jediné entitě.
Např. budeme chtít uložit výšku, šířku a délku pěti mobilních
telefonů. Ačkoli se nyní může zdát, že se jedná o úlohu na 3D seznam,
ve skutečnosti se jedná o úlohu na obyčejný 1D seznam objektů typu
Telefon."

jestli to chápu správně, myslel tím autor, že máme uvažovat v OOP, a Telefon je třída? Pak by bylo opravdu vhodnější použít slovo "třídy" a ne "typu", ať je to jasné.

class Telefon():

    def __init__(self, výška, šířka, délka):
    ...

?

 
Odpovědět
12.6.2023 16:17
Avatar
Michal Salvet:28.7.2023 17:23

Lekce neni uplne spatna ale obdivuji jak dokazete celkem jednoduchou vec vysvetlovat tak ze ja ktery tohle celkem znam, se ve vasem vykladu ztracim. Pritom je to tak jednoduche. Obycejny vnoreny list se stane super slozity vasim vykladem. No nechci ani domyslet jestli se bude v dalsich lekcich vysvetlovat vnoreni jako list uvnitr ktereho je kombinace list,tuple, list a dict, v dict jako value list, tuple, str a list, ve vnorenem listu taky ruzne data kolekce atd.

 
Odpovědět
28.7.2023 17:23
Avatar
Karel Zaoral
Člen
Avatar
Odpovídá na Marie Pazoutova
Karel Zaoral:26.9.2023 13:53

Ahoj Marie, typ Telefon sice implikuje třídu, ale máš pravdu, je lepší to napsat přímo. Díky za zpětnou vazbu.

 
Odpovědět
26.9.2023 13:53
Avatar
Pavel Kopecký:2.1.2024 11:26

To vypsání kinosálu by mohlo být vysvětleno lépe. Jinak ok.

 
Odpovědět
2.1.2024 11:26
Avatar
Jakub Ježek
Člen
Avatar
Jakub Ježek:7.1.2024 21:27

Opět jedna z těch lépe vysvětlených lekcí. Jsou tam sice drobnosti, ale stejně jako v lekci minulé se dají jednoduše osvětlit tím, že si to vyzkouším. Díky.

 
Odpovědět
7.1.2024 21:27
Avatar
Tomas Balbinder:13.3.2024 12:08

Ahoj, proc pri vytvareni 2D nebo 3D seznamu otacite seznam a delate z toho sloupce a nenechate to tak jak je ? Dik

 
Odpovědět
13.3.2024 12:08
Avatar
honza394
Člen
Avatar
honza394:10.9.2024 11:53

Ahoj, navrhuji změnit příklad s kinosálem: Zatím jsem nepotkal kinosál se sloupci, ale vždy s řadami, ve kterých jsou sedadla.

kinosal = []
for i in range(5):
    # vytvoř řadu v kinosále
    rada = []
    for j in range(5):
        # do řady přidej sedadlo
        # označ sedačku číslem, zde pro názornost
        rada.append(i * 10 + j)
    # hotovou řadu přidej do kinosálu
    kinosal.append(rada)
# řada=1, sedadlo=4
print(kinosal[1][4])
print(kinosal)
 
Odpovědět
10.9.2024 11:53
Avatar
Jean Kocman :8.12.2024 6:33

Přijde mi to strašně složitě vysvětlené. I na W3schools je to lépe popsané.

 
Odpovědět
8.12.2024 6:33
Avatar
Zdeněk Brynych:1. února 19:42

Jelikož mi 3D seznamy příjdou opravdu složitě vysvětlené tak bych vám tu chtěl nechat alternativní výklad mou metodou , kterou jsem nazval FLI nebo-li floor, list, item.
příklad první

threeD_list = [
    # list   0                 1                 2
    [[1.25, 1.5, 1.75],[2.25, 2.5, 2.75],[3.25, 3.5, 3.75]], # 0 patro (floor)
    [[4.25, 4.5, 4.75],[5.25, 5.5, 5.75],[6.25, 6.5, 6.75]], # 1 patro (floor)
    [[7.25, 7.5, 7.75],[8.25, 8.5, 8.75],[9.25, 9.5, 9.75]], # 2 patro (floor)
] #  [ 0,    1,   2  ],[ 0,    1,   2  ],[ 0,    1,   2  ]   # položka (item)


# vybíráme (choose step by step): patro (floor) > seznam (list) > položku (item)
# [ FLOOR [ LIST [ ITEM ]]]

print(threeD_list[1][0][1])

zde je v cyklu

kinosaly = []

for f in range(5): # patro ( floor )
    floor = []
    for l in range(5): # seznam ( list )
        list = []
        for i in range(5): # položky ( items )
            list.append(0)
        floor.append(list)
    kinosaly.append(floor)

def nahradit_nulu(kinosaly, f, l, i, nova_hodnota):
    kinosaly[f][l][i] = nova_hodnota

nahradit_nulu(kinosaly,1,0,1, 4.5)

for floor in kinosaly:
    print(floor)
    print()

"""
toto je verze navržená "Copilotem"

kinosaly = []

for s in range(5):
    sal = []
    for p in range(5):
        podlazi = [0] * 5
        sal.append(podlazi)
    kinosaly.append(sal)

# Tisk každého sálu na nový řádek
for sal in kinosaly:
    print(sal)
    print()  # Přidání prázdného řádku mezi sály
"""
 
Odpovědět
1. února 19:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 41.