[python] vnitřní implementace python listu

Jan Matejka matejka na cat.cz
Pondělí Leden 8 18:55:00 CET 2007


> Ono jde o to, že si můžete vybrat - některé operace pomalejší 
> a některé rychlejší. Souvislý seznam má extrémně rychlé 
> append, přístup přes indexy, čtení a zápis prvku. Zase 
> pomalejší vkládání doprostřed seznamu.

Ano, souhlasím, do určité velikosti seznamu je souvislý blok nejlepší
reprezentace. 
Zkusil jsem testík vložení 100000 záznamů na konec a na začátek seznamu.
Rozdíl je v tomto případě o 2 řády, zjevně je ukládání na začátek seznamu
(pole) pro tuto velikost daleko za limitem efektivity.

for i in xrange(n):
    l.append(i)
0.0310001373291

for i in xrange(n):
    l.insert(0,n)
5.01599979401


Naštěstí python poskytuje prostředky pro vytvoření vlastních kontejnerů,
takže v připadě potřeby si člověk může udělat svůj specifický i když
přiloženou baterii tohoto druhu bych docela čekal.

Jan Matějka



Další informace o konferenci Python