[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