python - पायथन में एक सरणी की लंबाई प्राप्त करना




arrays (5)

आप सरणी की लंबाई प्राप्त करने के लिए पिछले उत्तरों में सुझाए गए अनुसार len(arr) उपयोग कर सकते हैं। यदि आप 2 डी सरणी के आयाम चाहते हैं तो आप arr.shape रिटर्न ऊंचाई और चौड़ाई का उपयोग कर सकते हैं

Python , तत्वों की संख्या प्राप्त करने का एकमात्र तरीका निम्न है?

arr.__len__()

यदि हां, तो अजीब वाक्यविन्यास क्यों?


किसी भी पायथन ऑब्जेक्ट की लंबाई प्राप्त करने का पसंदीदा तरीका इसे len समारोह के लिए एक तर्क के रूप में पास करना है। आंतरिक रूप से, अजगर तब पारित वस्तु के विशेष __len__ विधि को कॉल करने का प्रयास करेगा।


पाइथन बतख टाइपिंग का उपयोग करता है: यह किसी वस्तु का क्या ख्याल नहीं रखता है , जब तक कि स्थिति के लिए उपयुक्त इंटरफ़ेस हो। जब आप किसी ऑब्जेक्ट पर अंतर्निहित फ़ंक्शन लेन () को कॉल करते हैं, तो आप वास्तव में अपनी आंतरिक __len__ विधि को कॉल कर रहे हैं। एक कस्टम ऑब्जेक्ट इस इंटरफ़ेस को कार्यान्वित कर सकता है और len () उत्तर वापस कर देगा, भले ही ऑब्जेक्ट अवधारणात्मक रूप से अनुक्रम न हो।

इंटरफेस की पूरी सूची के लिए, यहां एक नज़र डालें: http://docs.python.org/reference/datamodel.html#basic-customization


बस लेन (एआर) का प्रयोग करें:

>>> import array
>>> arr = array.array('i')
>>> arr.append('2')
>>> arr.__len__()
1
>>> len(arr)
1

my_list = [1,2,3,4,5]
len(my_list)
# 5

Tuples के लिए एक ही काम करता है:

my_tuple = (1,2,3,4,5)
len(my_tuple)
# 5

और तार, जो वास्तव में पात्रों के सरणी हैं:

my_string = 'hello world'
len(my_string)
# 11

यह जानबूझकर इस तरह से किया गया था ताकि सूचियों, tuples और अन्य कंटेनर प्रकारों को सभी को सार्वजनिक रूप से लागू करने की आवश्यकता नहीं है। .length() विधि, इसके बजाय आप केवल 'जादू' __len__() लागू करने वाले किसी भी चीज के len() की जांच कर सकते हैं __len__() विधि।

निश्चित रूप से, यह अनावश्यक प्रतीत हो सकता है, लेकिन एक ही भाषा के भीतर भी लंबाई जांच कार्यान्वयन काफी भिन्न हो सकता है। एक संग्रह प्रकार को एक .length() विधि का उपयोग करना असामान्य नहीं है, जबकि दूसरा प्रकार एक .length गुण का उपयोग करता है, जबकि अभी तक एक और उपयोग करता है .count() । भाषा-स्तर वाले कीवर्ड होने से इन सभी प्रकारों के लिए प्रवेश बिंदु एकीकृत होता है। तो यहां तक ​​कि ऑब्जेक्ट्स जिन्हें आप तत्वों की सूचियों पर नहीं मान सकते हैं, अभी भी लंबाई-जांच की जा सकती है। इसमें स्ट्रिंग्स, कतार, पेड़ इत्यादि शामिल हैं।

len() की कार्यात्मक प्रकृति भी प्रोग्रामिंग की कार्यात्मक शैलियों के लिए खुद को अच्छी तरह से उधार देती है।

lengths = map(len, list_of_containers)




arrays