Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 4. diel - Viacrozmerné zoznamy v Pythone

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
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.

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):
    ...

?

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.

Avatar
Karel Zaoral
Člen
Avatar
Odpovedá 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.

Avatar
Pavel Kopecký:2.1.2024 11:26

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

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.

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

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)
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é.

Avatar
Zdeněk Brynych:1. februára 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
"""
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 54.