[Tutor PyCZ] Problemy s razenim - sort()

Roman Miklos RMiklos na pss.sk
Pondělí Říjen 16 11:57:24 CEST 2006


Nazdar,

Nepouzivas slovnik, ale zoznam (list), presnejsie zoznam zoznamov.
Vytriedilo ti to dobre, problem je v tom, ze v kazdom podzozname su prvky 
s indexom 2 retazce a teda sa triedi lexikograficky:
'199'< '21'<'90'
Ak chces triedit ciselne, t.j. 
21<90<199
tak musis pouzit cisla t.j. nie '21' ale bez apostrofov 21, takze takto:

x = [['0', '3', 21, '"aaaaa"'], ['1', '2', 90, '"ccccc"'],['2','15', 199, 
'"Bbbbb"']]
x.sort(key=porovnej)

potom je vysledok:

[['0', '3', 21, '"aaaaa"'], ['1', '2', 90, '"ccccc"'], ['2', '15', 199, 
'"Bbbbb"']]  





smoke <konfera na rokyta.cz> 
Sent by: tutor-bounces na py.cz
16.10.2006 00:18
Please respond to
Konference Tutor portalu PyCZ <tutor na py.cz>


To
Konference Tutor portalu PyCZ <tutor na py.cz>
cc

Subject
[Tutor PyCZ] Problemy s razenim - sort()






Zdravim,

chtel bych se zeptat jak vyresit tento problem.

..pouziju funkci kterou jsem okoukla od geona ;)

def porovnej(sz1):
    return sz1[2]

#mam slovnik typu...
x = [['0', '3', '21', '"aaaaa"'], ['1', '2', '90', '"ccccc"'], ['2',
'15', '199', '"Bbbbb"']]

x.sort(key=porovnej)

#A vyjde mi toto:
[['2', '15', '199', '"Bbbbb"'], ['0', '3', '21', '"aaaaa"'], ['1', '2',
'90', '"ccccc"']]

#Coz je spatne - vysledek ktery potrebuji musi byt:
[['0', '3', '21', '"aaaaa"']['1', '2', '90', '"ccccc"']['2', '15',
'199', '"Bbbbb"']

#Take spatne razeni je i u stringu (x[3]) - kde to musi byt razeno podle
abecedy nehlede na male nebo velke pismena

Resim to uz nekolik dni a vzhledem ktomu, ze uz v tom doslova plavu -
zkousit najit radu zde - dekuji.

-- 
       _                _
 ___ _| |_ ____ __  ___| |_____ ___
|___|_   _(_-< '  \/ _ \ / / -_)___|
      |_| /__/_|_|_\___/_\_\___|
       JID: smoke na njs.netlab.cz
_______________________________________________
Tutor mailing list
Tutor na py.cz
http://www.py.cz/mailman/listinfo/tutor


Mgr. Ing. Roman MIKLÓŠ 
Prvá stavebná sporiteľňa a.s. 
Bajkalská 30, P. O. Box 48 
829 48  Bratislava 25 
Tel.: +421/ 2 / 582 31 174 
Fax: +421/ 2 / 582 31 109 
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/tutor/attachments/20061016/9ad3b408/attachment.htm 


Další informace o konferenci Tutor