Názory ke článku Python - 9. lekce – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Python - 9. lekce – Programujte.comNázory ke článku Python - 9. lekce – Programujte.com

 

Názory ke článku Python - 9. lekce

myky   NOVÝ
26. 11. 2006

ahoj chcem pochvalit tento serial je uplne super ale mam maly problem s tym zoznamom mal som:
...
mena=[]
cisla=[]
vsetko=[mena,cisla] ale najprv mi to vypise mena a az tak cisla tak som skusil toto:
...
cisla=[]
mena=[cisla] ale tu mi zas vuhodilo len jedno meno a potom vsetky cisla prosim kde robim chybu? poradte...skusal som poprosit ludi na irc ale nepomohli :(

don_Dominique   NOVÝ
1. 7. 2007

Mohl by mi někdo prosím trochu víc vysvětlit toto ?´

:def porovnej(mestoSeznam):

# definice funkce, která bude spolupracovat se sort()
return mestoSeznam[1] # zde vracíme tu položku, podle které chceme řadit

mesta=[['Praha', 1000000], ['Brno', 350000], ['Ostrava', 300000], ['Zlin', 80000]]
mesta.sort(key=porovnej) # serad podle klice (= funkce) "porovnej"
print "Serazeno podle poctu obyvatel: ", mesta

¨
Není mi jasné jak pracuje ten argument key ??? a navíc mi není jasné jak mu můžem předat parametr funkci porovnej bez uvedení argumentu ??? Děkuji za odpověď .

Ovcacik   NOVÝ
4. 7. 2007

Na tohle jsem taky koukal :(
zkoušel jsem key měnit na všechno možný ale funguje to jen v tomhle tvaru :(

Kojot007   NOVÝ
5. 7. 2007

Ahoj, hrozně chválím váš seriál, je bezva. Hrozně se mi líbí styl, kterým je psán - vysvětlení funkcí a úkol pro vlastní vyzkoušení. Jen bych chtěl dodat k tomuto článku, konkrétně k rubrice extra pro pokročilé, že vyhledání nového parametru funkce sort() není pořeba - indexovat můžeme i rozdílem :-D

Niliun   NOVÝ
2. 8. 2007

.... co znamena toto, alebo vlastne, ako sa to da vysvetlit, ako sa da zadat do toho key(u) funkcia porovnej, ked ma jeden argument?

def porovnej(mestoSeznam):
# definice funkce, která bude spolupracovat se sort()
return mestoSeznam[1] # zde vracíme tu položku, podle které chceme řadit

mesta=[['Praha', 1000000], ['Brno', 350000], ['Ostrava', 300000], ['Zlin', 80000]]
mesta.sort(key=porovnej) # serad podle klice (= funkce) "porovnej"
print "Serazeno podle poctu obyvatel: ", mesta

geon   NOVÝ
2. 8. 2007

Ano, "porovnej" je nejen bez argumentu, ale i bez závorek. S tímto se ještě setkáte u Tkinter, až budete chtít, aby se po stisku tlačítka něco stalo ;-) MEtoda "sort" si tam prostě argumenty dosadí sama. NEvím přesně jak, protože algoritmů na třídění je několik, to se hodně probírá v Pascalu na SŠ a VŠ. "Key" se do Pythonu dosatl tuším později, jako zjednodušení předchozího "cmp" (compare), které fungovalo nějak takto:

def porovnej_cmp(x,y):

porovnani= x < y # bude jedna, pokud x<y, jinak nula
return porovnani

mesta.sort(cmp=porovnej_cmp) # serad podle klice (= funkce) "porovnej"
print "Serazeno podle poctu obyvatel: ", mesta


Snad je to u cmp jasnější, co se děje - u key se děje to samé, jen o tom nevíte. Prostě mu jen ve funkci "porovnej" řeknete, podle kterého "sloupečku" řadit.

geon   NOVÝ
2. 8. 2007

Odpovězeno o kousek výše. Byl tam stejný dotaz.

P1trs   NOVÝ
9. 9. 2007

Asi nejtezsi lekce na pochopeni zatim.

BigBear   NOVÝ
9. 9. 2007

Nejprve chci rict, ze serial je opravdu super :-)... mno... tento ukol sice neodevzdam, pze jsem to cely delal pomoci slovniku a uvnitr hratky se seznamama, ale je to stejne dost jednoduchy... ale chtel jsem navrhnout, jestli by nebylo dobre vysvetlit lambda funkce... myslim, ze pro argument key jsou lambda funkce naprosto vybornou volbou ;-)... napriklad kdybych mel seznam:

mesta=[['Praha', 1000000], ['Brno', 350000], ['Ostrava', 300000], ['Zlin', 80000]]

a chtel to seradit, tak podle poctu obyvatel, tak to nejelegantneji udelam takto, ne?:
mesta.sort(key = lambda x: x[1])

P1trs   NOVÝ
15. 9. 2007

tak tato lekce mi dala docela zabrat:)

memnon   NOVÝ
2. 9. 2012

Moja verzia programu pre "extra pokročilé" :)

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
print "Telefóny zoznam \n"
zoznam = []
while True:
	kontakt = []
	meno_prez = raw_input("Zadaj meno a priezvisko: ")
	telefon = raw_input("Zadaj telefóne číslo: ")
	print
	kontakt = [meno_prez, telefon]
	zoznam.append(kontakt)
	koniec = raw_input("Chceš pridať ďalší kontakt? Ano/Nie: ") 
	if koniec.upper() == "N":
		print
		break
print ("Ďakujem, zadávanie ukončené")
print ("Tuje Váš nový telefóny zoznam:")
print ("------------------------------")
zoznam.sort(reverse=True) 
for meno, tele  in zoznam:
	print meno, ":", tele
print "\nPočet kontaktov v zozname: ", len(zoznam)

PS: super serial :)

Přidej svůj názor

×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:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



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