Re: range() vs. xrange() (bylo RE: [python] dotaz-mřížka)

Ivo Štolpa pussa na pussa.cz
Středa Duben 6 20:10:57 CEST 2005


Jaroslav Pachola napsal(a):

>Ahoj,
>
>Dne Wednesday 06 April 2005 17:57 Ivo Štolpa napsal(a):
>  
>
>>>hello
>>>Ted sem nasel v knize Zaciname programovat v jazyce Python vydane CP ze
>>>rozdil xrange a range je .... range tvori seznam a xrange ne ale pri
>>>tom je xrange silne pomalejsi ...
>>>
>>>ahoj
>>>_______________________________________________
>>>Python mailing list
>>>Python na py.cz
>>>http://www.py.cz/mailman/listinfo/python
>>>      
>>>
>>Ano, já tu knížku mám taky a taky jsem to zrovna četl. Z toho ovšem
>>vyplývá, že pokud v hypotetické verzi Python 3.0 by chtěli udělat tu
>>šarádu, tedy zrušit range a xrange přejmenovat na range, tak by do toho
>>mohli jít jedině v tom případě, že by současnou xrange výrazně
>>zrychlili. No a také z toho plyne, že pro seznamy, o kterých vím, jak
>>jsou velké a o kterých vím, že nebudou nikdy mít miliony prvků, nemá
>>smysl xrange používat. Nutno ale také podotknout, že já to ve své
>>aplikaci zkoušel přehodit tam i zpět a žádné výkonostní výkyvy ani na
>>jednu stranu jsem pouhým okem nezpozoroval. Takže ono asi také záleží na
>>tom, co programuji a jestli je pro mne ten výkonostní rozdíl tak důležitý.
>>
>>Ivo
>>    
>>
>
>zkus si udelat benchmark a uvidis. Pouziti range() muze byt rychlejsi leda v 
>pripade, ze si vysledek toho range() ulozis do nejake promenne a pak tuto 
>promennou pouzivas nekde ve vnitrnim cyklu, coz dela asi malokdo. Cela ta 
>sarada ma IMO jasny vyznam - krome toho castecneho zrychleni se odstrani v 
>praxi nesmyslne vytvareni seznamu jenom za ucelem pouziti pro inkrementaci v 
>cyklu for.
>
>JP
>_______________________________________________
>Python mailing list
>Python na py.cz
>http://www.py.cz/mailman/listinfo/python
>
>  
>
Ano,  s tím se nedá než souhlasit. Na benchmarky nemám čas ani náladu, 
protože mě ty časy vlastně ani moc nezajímají. Jak psal někdo před 
tebou, kdyby mi šlo o milisekundy napíšu to v céčku. Já osobně používám 
range jen tam, kde chci iterovat po již existujícím seznamu, nebo když 
je to seznam o pár prvcích. Jinde používám xrange a vůbec mi nevadí, že 
je pomalejší. Dělám aplikace komunikující s SQL serverem a tato 
komunikace je časově mnohem náročnější, takže ve srovnání s tím je 
rozdíl mezi rande a xrange pro mne zanedbatelný.

Ivo

-- 
Ing. Ivo Štolpa

***********************************************
PUSSA software, Žižkova 13, 58601 Jihlava
e-mail: pussa na pussa.cz, ivo.stolpa na seznam.cz
stránky: http://www.pussa.cz
mobilní telefon: 602 735 124
pevná linka: 567 320 386
fax: 602 783 071
***********************************************





Další informace o konferenci Python