Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Ak za párne (sudé) považuješ položky s indexom 0, 2, 4, atď, tak takto: topmax = max(myList[::2], k…
los 25.05.2015 00:11
los
Eh, taková drobnost, ono to vrací text nejdelší položky:-) ale já bych potřeboval počet těch znaků n…
Mrkva 25.05.2015 00:36
Mrkva
na ten vysledok aplikuj len() funkciu pocet_znakov_najdlhsej_polozky = len(max(myList, key=len))…
emem 26.05.2015 20:50
emem
Děkuji, ale počítá to nějak divně :-( a = 'fsdfdsfsdafsadfsadf' # len vrací 19 znaků b = 'čšěščžžčř…
Mrkva 27.05.2015 22:55
Mrkva
pretoze musis premennej povedat, ze obsahuje unicode znaky. inak ti specialne znaky s diakritikou be…
wam_Spider007 27.05.2015 23:33
wam_Spider007
Do dokumentace jsem se díval, není tam u funkce len() ani slovo o kódování. Return the length (the…
Mrkva 28.05.2015 07:29
Mrkva
Ano, ale musíš si uvědomit rozdíl mezi stringem a Unicodestringem - ten první je sled znaků 0-255, t… nový
gilhad 28.05.2015 12:03
gilhad
http://stackoverflow.com/questions/2247205/python- returning-the-wrong-length-of-string-when-using-s…
gilhad 27.05.2015 23:41
gilhad
Děkuji, tak že když používám ve svém scriptu české znaky, musím každé funkci která s těmito znaky pr…
Mrkva 28.05.2015 07:27
Mrkva
nemusis, staci ak si nastavis UTF-8 na tej premennej. c = b.decode('utf-8') potom premennu "c" moz… nový
wam_Spider007 28.05.2015 10:54
wam_Spider007
Případně to rovnou jako UTF vytváříš: a=u"Příliš žluťoučký kůň úpěl ďábelské ódy" a jako UTF čteš… nový
gilhad 28.05.2015 11:57
gilhad
Díky moc všem za cenné informace, a prozradíte mi jak tedy načíst správně řádky ze souboru jako UTF-… poslední
Mrkva 28.05.2015 13:19
Mrkva

Ak za párne (sudé) považuješ položky s indexom 0, 2, 4, atď, tak takto:

topmax = max(myList[::2], key=len)

Ak za párne považuješ druhú, štvrtú, šiestu, atď. položku (pričom položky čísluješ od jedna), takže vlastne položky s indexom 1, 3, 5, atď, tak takto:

topmax = max(myList[1::2], key=len)

Děkuji, ale počítá to nějak divně :-(

a = 'fsdfdsfsdafsadfsadf' # len vrací 19 znaků
b = 'čšěščžžčřšžčšřžščšč' # len vrací 38 znaků

a i b mají podle len() jiný počet znaku, i když je počet znaků stejný :-(

pretoze musis premennej povedat, ze obsahuje unicode znaky. inak ti specialne znaky s diakritikou berie ako dva
ak by si si pozrel google alebo dokumentaciu, tak na to prides velmi rychlo :-)

skus toto

b = u'čšěščžžčřšžčšřžščšč'
len(b) # 19 znakov

Do dokumentace jsem se díval, není tam u funkce len() ani slovo o kódování.

Return the length (the number of items) of an object. The argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

Ano, ale musíš si uvědomit rozdíl mezi stringem a Unicodestringem - ten první je sled znaků 0-255, ten druhý je sled písmen v kódování UTF takže podle toho, který použiješ dostaneš buď počet bytů (velikost na disku, při přenosech a tak), nebo počet českých písmen (počet znaků na obrazovce a tak)

Díky moc všem za cenné informace, a prozradíte mi jak tedy načíst správně řádky ze souboru jako UTF-8 a uložit je do pole?

teď to mám takto

tmp = open('/py/data/'+file).read().splitlines()

a s kódováním je to takto správně ?

tmp = open('/py/data/'+file).read().splitlines().decode('utf-8')

Díky

Zpět do poradny Odpovědět na původní otázku Nahoru