2012-09-09 10 views
6

संभव डुप्लिकेट:
Cost of len() functionपायथन में 'लेन()' फ़ंक्शन के लिए बड़ा-नोट क्या है?

एक सूची में वस्तुओं से अधिक len() पुनरावृति करता है और उसके बाद उनकी गिनती वापसी? इस प्रकार इसे ओ (एन) दे रहा है।

या ....

एक अजगर सूची किसी भी वस्तुओं है कि यह के साथ जोड़ दिया है और यह से हटा दिया और फिर बस इस "गिनती" जब len() कहा जाता है लौट रहे हैं की गणना करता है? इस प्रकार इसे ओ (1) दे रहा है।

+1

यह 'ओ (1)' है जो आपको चाहिए: http://wiki.python.org/moin/TimeComplexity –

उत्तर

9

एक पाइथन सूची अपनी लंबाई जानता है; lenO(1) time लेता है। Lists are actually arrays, लिस्पी में लिंक्ड सूचियों से नहीं, जहां length रैखिक समय लेता है।

+2

"सबूत" http://wiki.python.org/moin/TimeComplexity – mgilson

8

__len__() को परिभाषित करने वाली सभी अंतर्निहित वस्तुओं के लिए, यह ओ (1) होगा। यदि आप अपनी खुद की वस्तुओं के लिए __len__() लागू करते हैं, तो यह कुछ भी हो सकता है।

संबंधित मुद्दे