cwbe coordinatez:
101
63540
2076399
856608
2245907

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::
total children::2
show[ 2 | 3] flat


prosim poradte mi ako zotriedit pole slovenskym triedenim s ignorovanim velkych/malych pismen. Teda

Alena
anastázia
Anton

s tym, aby to spravne triedilo aj diakritiku.




000001010006354002076399008566080224590702247397
mimmon
 mimmon      20.03.2006 - 12:41:36 (modif: 20.03.2006 - 12:45:03) [1K] , level: 1, UP   NEW !!CONTENT CHANGED!!
ospravedlnujem sa za moje zaciatocnicke napady, ale mozno inspiruju :)

napada ma urobit asociativne pole, kde klucom budu mena v lowercase (alena, anastazia) a priradena hodnota bude skutocne meno (Alena, anastazia). nakoniec zosortujes mena.keys() a vypises ich jednotlive hodnoty.. ale uznavam, ze je to dost komplikovane...
update: ups, neriesi to celkom tu diakritiku.

a k tomu porovnavaniu: nestaci ak do zozname napises zoznam vsetkych moznych pismen a porovnavat ich poradove cislo?

00000101000635400207639900856608022459070224739702248384
juraj
 juraj      20.03.2006 - 19:30:32 , level: 2, UP   NEW
to nie je ani pohodlný spôsob, ani korektný spôsob.

napríklad nezabúdaj, že také "ch" je v správnom slovenskom triedení za h (a nie za c!).

každopádne toto má riešiť systém, locales a collation, nie programátor sám.

0000010100063540020763990085660802245907022473970224838402248386
juraj
 juraj      20.03.2006 - 19:30:58 , level: 3, UP   NEW
a riešenie som postol nižšie


000001010006354002076399008566080224590702246130
mr gramma
 mr gramma      19.03.2006 - 20:59:15 [1K] , level: 1, UP   NEW
["foo", "atmosphere", "foobar", "bar", "abba"].sort() poznas? ale co sa tika slovenskej diakritiki sorac to nemam sam sajnu, jak by to malo vipadat, inac by som si pozrel code sort() lebo aj predpokladam ze to bude predca len case sensitive.

00000101000635400207639900856608022459070224613002246581
juraj
 juraj      20.03.2006 - 00:34:30 [1K] , level: 2, UP   NEW
no, .sort() samozrejme poznam. ale to prave nevyhovuje.

este otazku doplnim -- ako zistim, ci dane pismenko je v abecede "dalej" ako nejake ine?

teda napriklad potrebujem skocit v poli na prvok, ktory ako prvy zacina pismenkom "h", cize by som tym polom iteroval a ked by som narazil na string zacinajuci h alebo niecim dalej ako h (napriklad i alebo í), ak by string zacinajuci h-ckom nenasiel, tak by som zastal...

0000010100063540020763990085660802245907022461300224658102246628
gnd
 gnd      20.03.2006 - 01:02:08 , level: 3, UP   NEW
ord(char) ti da ciselnu hodnotu .. nestaci to ?
inac s tymi velkymi a malymi pismenami - nemohol by si vsetko prerobit na male (lower()), a v nejakom vektore si pamatat ze kde si prerabal ? (teda 0 - ziadna zmena, 1 zmena (pouzit capitalize()) ..

000001010006354002076399008566080224590702246130022465810224662802246992
juraj
 juraj      20.03.2006 - 09:28:51 [1K] , level: 4, UP   NEW
ord mi nestaci, pretoze č a c pomocou ord neporovnám.


import locale
locale.setlocale(locale.LC_ALL, 'sk_SK.utf-8')
a.sort(lambda x,y: locale.strcoll(x.lower(), y.lower()))

toto je sort pola a

porovnanie znakov:
if locale.strcoll(znak1.lower(), znak2.lower()) >=0:
...