[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