[python] Modifikace seznamu bez kopirovnani (bylo SQLite - forma selectovaných dat)

Petr Prikryl PrikrylP na skil.cz
Pondělí Leden 8 10:51:46 CET 2007


Jan Matejka
> [...]
> 1)
> for v,i in enumerate(l1):
>     l1[i]=v+1
> 6.17100000381

Drobná chybička, která ale může ovlivňovat výsledek.
Iterátor vracený funkcí enumerate() vrací dvojice
(index, hodnota) a ne (hodnota, index).

Je jasné, že použití enumerate bude pomalejší,
než použití xrange(), protože se musí konstruovat
navíc ta dvojice a navíc se pak musí rozdělávat 
na i, v.

Taky je jasné, že varianta s xrange() bude rychlejší,
než varianta s range(), protože se nemusí konstruovat
pomocný seznam indexů. (Přestane to platit u Python
3000, kdy bude range() fungovat jako xrange().


pepr


Další informace o konferenci Python