array.array
Diziler kutudan çıkarılmış gibi göründüğü için listelerden daha hızlı olmasını bekliyordum .
Ancak, aşağıdaki sonucu elde:
In [1]: import array
In [2]: L = list(range(100000000))
In [3]: A = array.array('l', range(100000000))
In [4]: %timeit sum(L)
1 loop, best of 3: 667 ms per loop
In [5]: %timeit sum(A)
1 loop, best of 3: 1.41 s per loop
In [6]: %timeit sum(L)
1 loop, best of 3: 627 ms per loop
In [7]: %timeit sum(A)
1 loop, best of 3: 1.39 s per loop
Böyle bir farkın nedeni ne olabilir?
array
Paketi kullanmam gereken bir durumla hiç karşılaşmadım . Önemli miktarda matematik yapmak istiyorsanız, Numpy ışık hızında (yani C) çalışır ve genellikle böyle şeylerin naif uygulamalarından daha iyidir sum()
).
array
bir karşı tamsayılar (ASCII temsil bayt) bir dizi dönüştürme oldukça hızlıdır str
nesne. Guido'nun kendisi ancak diğer birçok çözümden sonra geldi ve performansa oldukça şaşırdı. Her neyse, burası yararlı olduğunu hatırladığım tek yer. numpy
dizilerle uğraşmak için çok daha iyidir, ancak 3. tarafa bağımlıdır.