Temel olarak, Python listeleri çok esnektir ve tamamen heterojen, keyfi veriler tutabilir ve amortize edilmiş sabit zamanda çok verimli bir şekilde eklenebilir . Listenizi zamanla verimli ve sorunsuz bir şekilde küçültmeniz ve büyütmeniz gerekiyorsa, bunlar da gidilecek yoldur. Ancak C dizilerinden çok daha fazla alan kullanıyorlar .
array.array
Türü, diğer taraftan, Cı dizileri üzerinde sadece ince bir sarıcı. Yalnızca aynı türden olan homojen verileri tutabilir ve bu nedenle yalnızca sizeof(one object) * length
bayt bellek kullanır . Çoğunlukla, bir C dizisini bir uzantıya veya sistem çağrısına (örneğin ioctl
veya fctnl
) maruz bırakmanız gerektiğinde kullanmalısınız .
array.array
Python 2.x ( ) içinde değiştirilebilir bir dizeyi temsil etmenin de makul bir yoludur array('B', bytes)
. Ancak, Python 2.6+ ve 3.x gibi değişken bir bayt dizesi sunar bytearray
.
Ancak, homojen bir sayısal veri dizisi üzerinde matematik yapmak istiyorsanız , karmaşık çok boyutlu dizilerdeki işlemleri otomatik olarak vektörleştirebilen NumPy'yi kullanmaktan çok daha iyidir.
Uzun bir hikaye kısaltmak için : matematik yapmaktan başkaarray.array
nedenlerle homojen bir C veri dizisine ihtiyacınız olduğunda kullanışlıdır .