Pada dasarnya, daftar Python sangat fleksibel dan dapat menyimpan data yang sepenuhnya heterogen, sewenang-wenang, dan mereka dapat ditambahkan dengan sangat efisien, dalam waktu konstan yang diamortisasi . Jika Anda perlu mengecilkan dan menumbuhkan daftar Anda secara efisien dan tanpa kerumitan, mereka adalah cara untuk melakukannya. Tapi mereka menggunakan lebih banyak ruang daripada C array .
The array.array
jenis, di sisi lain, hanya bungkus tipis pada C array. Itu hanya dapat menyimpan data homogen, semua dari jenis yang sama, dan hanya menggunakan sizeof(one object) * length
byte memori. Sebagian besar, Anda harus menggunakannya ketika Anda perlu mengekspos array C ke ekstensi atau panggilan sistem (misalnya, ioctl
atau fctnl
).
array.array
juga merupakan cara yang masuk akal untuk mewakili string yang dapat berubah dalam Python 2.x ( array('B', bytes)
). Namun, Python 2.6+ dan 3.x menawarkan byte string yang dapat diubah sebagai bytearray
.
Namun, jika Anda ingin melakukan matematika pada array data numerik yang homogen, maka Anda jauh lebih baik menggunakan NumPy, yang dapat secara otomatis mengubah operasi pada array multi-dimensi yang kompleks.
Untuk membuat cerita panjang pendek : array.array
berguna ketika Anda membutuhkan array data C homogen untuk alasan selain melakukan matematika .