[python] programujte.com Kurz Python - Lekce 9. - sort (key=...)
Happy Day
happy.days na seznam.cz
Pátek Červenec 6 19:54:41 CEST 2007
Dobrý den,
v kurzu Python od geona - Lekce 9. jsem se zarazil u úlohy:
# Jinak fakt skvělý kurz, moc mě to baví :)
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
V předposlednim řádku se pomoci metody sort() seřazuje seznam mesta
podle argumentu key=porovnej - dělá co má.
1) Jaktože arg mestoSeznam neni definovan a přece to bez něj nejde =
3. řádek nemůžu prostě nahradit return [1]
2) Proč najednou taková komplikace, doted se mi zdál Python jako
jednoduchý, "intuitivní" jazyk :(
Mnohem elegantnější mi přijde: mesta.sort(key=[1]) :) ach jo.
Koukal jsem na http://docs.python.org/lib/ a nenašel jsem nic co by
to vysvětlovalo. Špatně jsem koukal?
Snad někdo zná odpověd :) Děkuju za všechny reakce.
P.S.: Nevíte někdo jak bych se mohl "podívat do útrob" metody sort()
a vidět co tenhle kód dělá s argumentem key?
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20070706/4289092a/attachment.htm
Další informace o konferenci Python