Saya berharap array.arraylebih cepat dari daftar, karena array tampaknya tidak dikotak.
Namun, saya mendapatkan hasil berikut:
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
Apa yang bisa menjadi penyebab perbedaan seperti itu?
arraypaket. Jika Anda ingin melakukan sejumlah besar matematika, Numpy beroperasi dengan kecepatan cahaya (yaitu C), dan biasanya lebih baik daripada implementasi yang naif seperti sum()).
arraycukup cepat dalam mengubah string bilangan bulat (mewakili byte ASCII) ke strobjek. Guido sendiri hanya menemukan ini setelah banyak solusi lain dan cukup terkejut dengan kinerjanya. Bagaimanapun ini adalah satu-satunya tempat di mana saya ingat melihatnya bermanfaat. numpyjauh lebih baik untuk berurusan dengan array tetapi ketergantungan pihak ke-3.