मूल रूप से, पायथन लिस्ट्स बहुत लचीली हैं और पूरी तरह से विषम, मनमाना डेटा धारण कर सकती हैं, और उन्हें एमोर्टाइज्ड कॉन्स्टेंट टाइम में बहुत कुशलता से जोड़ा जा सकता है। यदि आपको अपनी ऐरे को समय-कुशलता से और बिना परेशानी के सिकोड़ने और बढ़ाने की आवश्यकता है, तो वे जाने का रास्ता हैं। लेकिन वे C ऐरे की तुलना में बहुत अधिक स्पेस का उपयोग करते हैं।
array.array प्रकार, दूसरी ओर, C ऐरे पर सिर्फ एक पतला वॉपर है। यह केवल सजातीय डेटा धारण कर सकता है, सभी एक ही प्रकार के, और इसलिए यह केवल sizeof(one object) * length बाइट्स मेमोरी का उपयोग करता है।
तो एक लिस्ट ऐसी हो सकती है: [1, 'a', [1, 2], 'string']
लेकिन एक ऐरे में केवल एक ही प्रकार की चीजें हो सकती हैं: [1, 2, 3, 4]