Saya berharap array.array
lebih 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?
array
paket. Jika Anda ingin melakukan sejumlah besar matematika, Numpy beroperasi dengan kecepatan cahaya (yaitu C), dan biasanya lebih baik daripada implementasi yang naif seperti sum()
).
array
cukup cepat dalam mengubah string bilangan bulat (mewakili byte ASCII) ke str
objek. 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. numpy
jauh lebih baik untuk berurusan dengan array tetapi ketergantungan pihak ke-3.