मुझे array.arrayसूचियों की तुलना में तेज़ होने की उम्मीद थी, क्योंकि सरणियाँ अनबॉक्स की जाती हैं।
हालाँकि, मुझे निम्न परिणाम मिले:
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
ऐसे अंतर का कारण क्या हो सकता है?
arrayपैकेज का उपयोग करने की आवश्यकता हो । यदि आप महत्वपूर्ण मात्रा में गणित करना चाहते हैं, तो Numpy प्रकाश-गति (यानी C) पर संचालित होता है, और आमतौर पर चीजों की भोली कार्यान्वयन से बेहतर होता है sum())।
arrayएक करने के लिए पूर्णांक (ASCII का प्रतिनिधित्व बाइट्स) के एक स्ट्रिंग परिवर्तित करने में बहुत तेजी से है strवस्तु। खुद गुइडो ने बहुत सारे अन्य समाधान के बाद ही इस पर ध्यान दिया और प्रदर्शन पर काफी हैरान थे। वैसे भी यह एकमात्र ऐसी जगह है जहाँ मुझे याद है कि यह उपयोगी है। numpyसरणियों से निपटने के लिए बहुत बेहतर है, लेकिन यह एक 3 पार्टी निर्भरता है।