IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 3. 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
Avatar
Přemek Koch
Člen
Avatar
Přemek Koch:25.9.2015 9:59

Opravdu je ukázka definice zubatého pole v pořádku?

 
Odpovedať
25.9.2015 9:59
Avatar
gcx11
Tvůrce
Avatar
Odpovedá na Přemek Koch
gcx11:25.9.2015 10:11

Není, díky za upozornění :)

 
Odpovedať
25.9.2015 10:11
Avatar
Přemek Koch
Člen
Avatar
Odpovedá na gcx11
Přemek Koch:25.9.2015 10:12

Rádo se stalo, díky za článek!

 
Odpovedať
25.9.2015 10:12
Avatar
Milan Šmídl:17.12.2015 10:20

Ahoj,
moc dekuji za skvelé clanky a velice ocenuji vasi ochotu sdilet sve vedomosti..v teto kapitole mam problem pochopit nasledujici

kinosal = []

for i in range(5):
    temp = []
    for j in range(5):
        temp.append(0)
    kinosal.append(temp)

zde jsme vytvorili seznam temp, naplnily ho peti nulami a ten jsme znovu petkrat vlozili do seznamu kinosal. Chapu ze pozice v seznamu temp je souradnice radku a pozice v seznamu kinosal je souradnice sloupce. Ale pak nechapu zapis

for i in range(1, 4):
    kinosal[3][i] = 1
# Poslední řádek
for j in range(0, 5):
    kinosal[4][j] = 1

prostredek ano

Prostředek
kinosal[2][2] = 1
Ale nemuzu se dopocitak pozice prvku a ani mi nesedi range, nemohl by jste prosim nekdo zkusit, trosku jiny vyklad, popripade styl vysvetleni...dekuji
Editované 17.12.2015 10:21
 
Odpovedať
17.12.2015 10:20
Avatar
coells
Tvůrce
Avatar
Odpovedá na Milan Šmídl
coells:17.12.2015 15:01

range(1, 4) vrátí prvky 1, 2, 3
range(0, 5) vrátí prvky 0, 1, 2, 3, 4
tím pádem je celkem jasné, jak čtvrtý a pátý řádek budou vypadat.

Alternativně se dá celý příklad napsat takhle:

kinosal = [[0] * 5 for _ in range(5)]

kinosal[2][2] = 1
kinosal[3][1:4] = [1] * 3
kinosal[4][:] = [1] * 5

import pprint
pprint.pprint(kinosal)

Nicméně, tenhle tutoriál je jen jedna-k-jedné zkopírovaný tutoriál na C#, aniž by si s tím autor lámal hlavu.
http://www.itnetwork.cz/…ozmerna-pole
V pythonu se programuje úplně jinak, než v C#, takže bych doporučil celý tenhle seriál nebrat moc vážně a zkusil se podívat na něco čistě pythonovského.

 
Odpovedať
17.12.2015 15:01
Avatar
coells
Tvůrce
Avatar
Odpovedá na Milan Šmídl
coells:17.12.2015 15:29

Malá poznámka pro trochu pokročilejší programování - Python podporuje vícerozměrná pole, ale je k tomu potřeba modul numpy.
Pak se dá pracovat s polem, které má mnoho dimenzí a je k tomu všechen luxus, který Python běžně nabízí.

Stejný příklad můžu napsat takhle:

import numpy as np

kinosal = np.zeros((5, 5), dtype=int)
kinosal[2, 2] = 1
kinosal[3, 1:4] = 1
kinosal[4, :] = 1
print(kinosal)

Nebo obecněji s pokročilejší technikou:

import numpy as np

kinosal = np.tril([1] * 5)
kinosal = kinosal * np.fliplr(kinosal)
print(kinosal)
 
Odpovedať
17.12.2015 15:29
Avatar
Odpovedá na coells
Milan Šmídl:17.12.2015 21:34

Diky ti, posunul jsem se, ale jeste stale nejsem uplne"doma":)
S programovanim zacinam, tento serial je muj vubec prvni pocin v IT:) Python jsem si vybral, protoze s nim zacinaji na MIT ( kurz "programing and computer science"), tvrdi, ze je to nejvhodnejsi jazyk pro uplne zacatecniky a ja nemam duvod jim neverit:) jeste mi dovol prosim malou otazecku, nedoporucil by jsi mi nejaky vhodny zdroj informaci? Jak jsi se ucil ty?
Jeste jednou diky za tvuje prispevky..

 
Odpovedať
17.12.2015 21:34
Avatar
Odpovedá na coells
Milan Šmídl:29.12.2015 13:12

Ahoj prosim mam jeste jeden dotaz, ze jsem tak smely:)
snazim se ted udelat uplne jednoduchej programek, ktery bude na obrazovce vykreslovat uplne jednoduchy fraktal a zasekl jsem se na tom, ze nejsem schopen do funkce která kreslý fraktál(vzdy s o polovinu mensimi parametry)impor­tovat data.Zkratka nejsem schopen udelalt funkci která promenou vzdy v cyklu vynasobí jednou polovinou a to bude argument funkce pro kresleni..Bojim se aby to bylo srozumitelne..Mohl by jsi byt tak hodny a zkusil mi dat nejake rady na zacatek..lehce do me strcit:) Dekuji

 
Odpovedať
29.12.2015 13:12
Avatar
coells
Tvůrce
Avatar
Odpovedá na Milan Šmídl
coells:29.12.2015 18:43

Milane, bojíš se oprávněně, vůbec netuším, co potřebuješ udělat, ani čemu nerozumíš.
Pokud je to dotaz typu, chci fráktál, ale netuším, jak to udělat, tak si projeď ta videa, o kterých jsme mluvili dříve.

 
Odpovedať
29.12.2015 18:43
Avatar
Odpovedá na coells
Milan Šmídl:30.12.2015 6:58

Je mi to jasny:) dam sem kod a uvidis jestli ti to neco rekne, kazdopadne diky za reakci..hezky den

 
Odpovedať
30.12.2015 6:58
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.

Zatiaľ nikto nevložil komentár - buď prvý!