python - पायथन में सूची में तत्वों की संख्या कैसे प्राप्त करें?




list (4)

items = []
items.append("apple")
items.append("orange")
items.append("banana")

# FAKE METHOD::
items.amount()  # Should return 3

मैं सूची में तत्वों की संख्या कैसे प्राप्त करूं?


सूची का आकार कैसे प्राप्त करें?

सूची का आकार ढूंढने के लिए, बिल्टिन फ़ंक्शन का उपयोग करें, len :

items = []
items.append("apple")
items.append("orange")
items.append("banana")

और अब:

len(items)

रिटर्न 3।

docs

len(s)

ऑब्जेक्ट की लंबाई (वस्तुओं की संख्या) लौटें। तर्क एक अनुक्रम (जैसे एक स्ट्रिंग, बाइट्स, टुपल, सूची, या रेंज) या एक संग्रह (जैसे एक शब्दकोश, सेट, या जमे हुए सेट) हो सकता है।

len मॉडल डेटा docs से __len__ साथ लागू किया गया है:

object.__len__(self)

बिल्ट-इन फ़ंक्शन len() को लागू करने के लिए बुलाया गया। ऑब्जेक्ट की लंबाई, एक पूर्णांक> = 0. लौटा देना चाहिए। साथ ही, एक ऑब्जेक्ट जो एक __nonzero__() [पायथन 3 या __bool__() में पाइथन 3] विधि को परिभाषित नहीं करता है और जिसका __len__() विधि शून्य देता है एक बूलियन संदर्भ में झूठी होने के लिए।

और हम यह भी देख सकते हैं कि __len__ सूचियों का एक तरीका है:

items.__len__()

रिटर्न 3।

बिल्टिन प्रकार आप len (लंबाई) प्राप्त कर सकते हैं

और वास्तव में हम देखते हैं कि हम इस जानकारी को सभी वर्णित प्रकारों के लिए प्राप्त कर सकते हैं:

>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, 
                                            xrange, dict, set, frozenset))
True

एक शर्त के लिए मान के रूप में len उपयोग न करें

मत करो:

if len(items): 
    ...

इसके बजाए, करें:

if items:
    ...

मैं समझाता हूं कि यहां क्यों लेकिन संक्षेप में, यह अधिक पठनीय और अधिक प्रदर्शनकारी है।


आपके प्रश्न का उत्तर देने के उदाहरणों के रूप में पहले भी दिया गया था:

items = []
items.append("apple")
items.append("orange")
items.append("banana")

print items.__len__()

हालांकि यह इस तथ्य के कारण उपयोगी नहीं हो सकता है कि यह "बॉक्स से बाहर" कार्यक्षमता के रूप में बहुत अधिक समझ में आता है, एक length संपत्ति के साथ कक्षा बनाने के लिए एक साधारण सरल हैक होगा:

class slist(list):
    @property
    def length(self):
        return len(self)

आप इसका उपयोग इस प्रकार कर सकते हैं:

>>> l = slist(range(10))
>>> l.length
10
>>> print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

अनिवार्य रूप से, यह एक ओओपी-अनुकूल length संपत्ति रखने के अतिरिक्त लाभ के साथ, एक सूची वस्तु के समान है।

हमेशा की तरह, आपके माईलेज़ भिन्न हो सकते हैं।


len() फ़ंक्शन का उपयोग Python में कई प्रकार के साथ किया जा सकता है - अंतर्निहित प्रकार और लाइब्रेरी प्रकार दोनों।

>>> len([1,2,3])
3




list