9. lekce – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

9. lekce – Python – Fórum – Programujte.com9. lekce – Python – Fórum – Programujte.com

 

nestor0
Newbie
27. 8. 2006   #1
-
0
-

Hele, Geone, není to s tím úkolem

#Upravte váš dosavadní program tak, aby při zadávání se data ukládala do seznamu v seznamu a na konci vytiskněte seznam seřazený podle abecedy

nějaká bžunda? :D
Nikde v tvým kurzu ani v Alfě, ale ani v přeložené dokumentaci jsem nebyl schopen zjistit, jak lze seřadit dva seznamy, aby to spolu souviselo. Tedy, aby ty telefonní čísla se řadila podle řazení prvního seznamu, zkrátka aby se navzájem nepomíchaly vazby mezi jmény a čísly
Už nevím, kde vyštrachat alespoň nějakou nápovědu.
Nechci podvádět sám sebe a přečíst si výsledky spolužáků dříve než se o to pokusím sám.

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
27. 8. 2006   #2
-
0
-

není :-)

seřadit dva seznamy závisle na sobě je trošičku těžší, ale jde to. To ale po to tobě nikdo nechce ;-). Máš totiž tuto nepříjmenost obejít tak, že vytvoříš seznam v seznamu ...

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
nestor0
Newbie
27. 8. 2006   #3
-
0
-

No, tak to je tedy úžasně ulehčené :D
To znamená, že musí vzniknout v tom vnitřním seznamu jedinej seznam, do kterého se každým cyklem vloží spojené jméno s číslem, ajko jeden string. Sice zatím nevím, jak to udělat, ale pakliže by to mělo být takto, to by snad stačilo cpát ta data takto spojená do seznamu, nikoliv "do seznamu v seznamu" . Asi uvažuju úplně blbě, že? Tak hlavně, že tě to pobavilo, když je venku tak pošmourno :))

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
27. 8. 2006   #4
-
0
-

Myslím že má vzniknout něco jako:

[["tonda",545454],["john", 1112545454],["matej", 6545 4564 65]]

;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
nestor0
Newbie
27. 8. 2006   #5
-
0
-

Hurá, tak teď už vím, co se po mně chce. Důležité je vidět cíl. Cestu už snad nějak najdu. Hlavní, že teď už vím, co mám hledat. Díky.

Nahlásit jako SPAM
IP: ...–
nestor0
Newbie
30. 8. 2006   #6
-
0
-

U? d?ky tob? v?m, jak vypsat v 9. lekci v ?kolu ten seznam bez z?vorek. To je fakt super vlastnost Pythonu, ?e si pamatuje prom?nn?, ze kter?ch byly vytvo?eny polo?ky vlo?en?ho seznamu. To by m? tedy vůbec nenapadlo. Phyton je borec! Tak?e ten v?pis na z?v?r skriptu by mohl vypadat n?jak takhle?



seznam.sort()
for jmeno, cislo in seznam:
print jmeno, ":", cislo

print "n ...a sestupne:"
seznam.reverse()
for jmeno, cislo in seznam:
print jmeno, ":", cislo

M?j úkol by zde: http://programujte.com/ukoly.php?akce=detail&id_detail=2125&sekce=17&load=none

Je?t? bych se cht?l zeptat. Bez toho, ani? bych znal ty prom?nn? vnit?n?ho seznamu, by to asi ne?lo?
Zkou?el jsem to ru?it ty z?vorky p?ehazov?n?m je?t? p?es jeden seznam pomoc? vno?en?ho cyklu 'for' a zjistil jsem, ?e by ?ly ka?d?m "vno??kem" odstranit v?dy jedny hranat? z?vorky. T?m jsem se hned p?es prvn? "vno??k" dostal na tisk oby?ejn?ho stringu. Bohu?el, jm?no a ??slo byly pevn? sv?zan? - ne?lo mezi n? vlo?it t?eba dvojte?ku. Nav?c ty dvoji?ky ne?ly vytisknout pod sebou. Pomoc? ??rky na konci printu (print seznam,) jsem doc?lil jen toho, ?e se to m?sto jednoho svil?ho sloupce tisklo jako jeden dlouhej ??dek. Nu?, to j? jen tak, abys v?d?l, ?e tu m?? i naivn? batatele.

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
30. 8. 2006   #7
-
0
-

[i]To je fakt super vlastnost Pythonu, ?e si pamatuje prom?nn?, ze kter?ch byly vytvo?eny polo?ky vlo?en?ho seznamu.[/i]
tak se to asi ??ct ned?, ?e si "pamatuje prom?nn?". Ty tam m??e? pou??t ?pln? jin? jm?na, jen po?et ti mus? v?dy souhlasit:



for abc, xyz in seznam:
print abc, ":", xyz


[i]Je?t? bych se cht?l zeptat. Bez toho, ani? bych znal ty prom?nn? vnit?n?ho seznamu, by to asi ne?lo?[/i]
Snad jsem ti na toto naho?e odpov?d?l ...

[i]Zkou?el jsem to ru?it ty z?vorky p?ehazov?n?m je?t? p?es jeden seznam pomoc? vno?en?ho cyklu 'for' a zjistil jsem, ?e by ?ly ka?d?m "vno??kem" odstranit v?dy jedny hranat? z?vorky. T?m jsem se hned p?es prvn? "vno??k" dostal na tisk oby?ejn?ho stringu.[/i]
bohu?el, nerozum?m, i kdy? jsem to ?etl n?kolikr?t

[i]Bohu?el, jm?no a ??slo byly pevn? sv?zan? - ne?lo mezi n? vlo?it t?eba dvojte?ku. Nav?c ty dvoji?ky ne?ly vytisknout pod sebou.[/i]
Msl?? zarovn?n? nebo tisk pod sebou?
Zarovn?n? (aby to bylo v p?esn? zarovnan?ch sloup?c?ch) se d?l? :
* tiskem tabul?toru (ne v?dy to funguje)
* pak n?jak?mi metodami ?et?zce ljust(), rjust(), a mo?n? taky expandtabs()
* ur?it? je?t? n?jak

Tisk v?c? pod sebou ud?l?? jednodu?e takto:
print abc
print ":"
print xyz

nebo print abc,"n:n",xyz

;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
nestor0
Newbie
31. 8. 2006   #8
-
0
-

Tak j? ten ?modrchel z vno?en?m cyklem spl?cnu znova a pokus?m se, abych byl l?pe k pochopen? - tedy na p??kladech.
V podstat? ?lo o to, ?e kdy? m?m Seznam se dv?ma vno?en?mi seznamy, pak n?sleduj?c? k?d...

Seznam = [['Jmeno1' , 'Cislo1'],['Jmeno2' , 'Cislo2']]

for tisk1 in Seznam:
print tisk1

... vyp??e:
['Jmeno1', 'Cislo1']

['Jmeno2', 'Cislo2']


Kdy? jsem neznal ?e?en? a cht?l jsem se zbavit n?jak t?ch z?vorek a apostrof?, ?el jsem na to pr?v? t?m vno?en?m cyklem takhle a tisk byl takov?...

Seznam = [['Jmeno1' , 'Cislo1'],['Jmeno2' , 'Cislo2']]

for tisk1 in Seznam:
for tisk2 in tisk1:
print tisk2,

... vyp??e:
Jmeno1 Cislo1 Jmeno2 Cislo2


No a to, byl stav, kde jsem to potřeboval rozd?lit a d?t pod sebe tak, abych dos?hl toho, na co jsem nemohl p?ed t?m p?ij?t, co? mne tr?pilo asi 3 hodiny. Te? v?m, ?e spr?vn? ?e?en? je ...

Seznam = [['Jmeno1' , 'Cislo1'],['Jmeno2' , 'Cislo2']]

for jmeno, cislo in Seznam:
print jmeno, ":", cislo

... vyp??e:
Jmeno1 : Cislo1

Jmeno2 : Cislo2


Proj?t si cesty, kter? nikam nevedou, tak? nen? k zahozen?.

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
31. 8. 2006   #9
-
0
-

[i]Kdy? jsem neznal ?e?en? a cht?l jsem se zbavit n?jak t?ch z?vorek a apostrof?, ?el jsem na to pr?v? t?m vno?en?m cyklem takhle a tisk byl takov?...

Seznam = [['Jmeno1' , 'Cislo1'],['Jmeno2' , 'Cislo2']]

for tisk1 in Seznam:
for tisk2 in tisk1:
print tisk2,

[/i]
jo aha! to by ?lo tedy ud?lat takto:
for tisk1 in Seznam:

print tisk1[0],":", tisk1[1]


;-)


Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
nestor0
Newbie
31. 8. 2006   #10
-
0
-

Ach jo. Taková jednoduchost! Jdu si koupit naproti do kovomatu provaz, pistoli a jdu se zastřelit do rybníka.

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
1. 9. 2006   #11
-
0
-

Ještě mě napadlo jedno řešení. Není sice možno vkládat doprostřed jednoduše např. ":", ale přesto to něco dělá:

Seznam = [['Jmeno1' , 'Cislo1'],['Jmeno2' , 'Cislo2']]

for tisk1 in Seznam:
for tisk2 in tisk1:
print tisk2,
print

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
nestor0
Newbie
1. 9. 2006   #12
-
0
-

Tak tohle nemá žádnou logiku. Jak tě to napadlo? Jsi snad Python?rogenius, nebo co? Nebo si to odvodil z nějakého jiného jazyku?

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
1. 9. 2006   #13
-
0
-

na tom příeci nen nic zvláštního. Něco nevíš jak nebo proč funguje? Samotné print prostě oddkuje .... A odkuje na konci cyklu tisku, kdy se tiskne za sebou ;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

5. lekce — založil inocencz

1.lekce — založil Jan Burant

If else - lekce 3 — založil Ymemgirei

9.lekce — založil P1trs

4. lekce — založil Hamarič Norbert

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý