মূলত, পাইথন তালিকাগুলি অত্যন্ত নমনীয় এবং পুরোপুরি ভিন্ন ভিন্ন, স্বেচ্ছাসেবী ডেটা রাখতে পারে এবং এগুলি নিয়মিত ধীরে ধীরে সময়কালে খুব দক্ষতার সাথে যুক্ত করা যেতে পারে । আপনার যদি সময়-দক্ষতার সাথে এবং ঝামেলা ছাড়াই আপনার তালিকাটি সঙ্কুচিত করা এবং বাড়ানো দরকার, তবে সেগুলি হ'ল উপায়। তবে তারা সি অ্যারের চেয়ে অনেক বেশি জায়গা ব্যবহার করে ।
array.array
ধরন, অন্য দিকে, শুধু সি অ্যারে একটা পাতলা মোড়কের হয়। এটি কেবল একই জাতীয় সমস্ত ডেটা, একই ধরণের ধারণ করতে পারে এবং তাই এটি কেবল sizeof(one object) * length
মেমরির বাইট ব্যবহার করে । বেশিরভাগ ক্ষেত্রে, আপনি যখন কোনও এক্সটেনশান বা সিস্টেম কল (যেমন উদাহরণস্বরূপ, ioctl
বা fctnl
) এর জন্য সি অ্যারে উন্মুক্ত করতে চান তখন আপনার এটি ব্যবহার করা উচিত ।
array.array
পাইথন ২.x ( ) এর পরিবর্তিত স্ট্রিং উপস্থাপনের যুক্তিসঙ্গত উপায় array('B', bytes)
। যাইহোক, পাইথন 2.6+ এবং 3.x হিসাবে একটি মিউটেবল বাইট স্ট্রিং উপলব্ধ bytearray
।
তবে, আপনি যদি সংখ্যার ডেটাগুলির একজাতীয় অ্যারেতে গণিত করতে চান , তবে আপনি NumPy ব্যবহার করা অনেক ভাল, যা জটিল মাল্টি-ডাইমেনশনাল অ্যারেতে স্বয়ংক্রিয়ভাবে অপারেশনটিকে ভেক্টরাইজ করতে পারে।
একটি দীর্ঘ গল্প সংক্ষিপ্ত করতে : array.array
যখন আপনার গাণিতিক ব্যতীত অন্যান্য কারণে ডেটাগুলির একটি সমজাতীয় সি অ্যারের প্রয়োজন হয় তখন তা কার্যকর ।