python - subeen - পাইথন সফটওয়্যার




কিভাবে পাইথন একটি তালিকায় উপাদান সংখ্যা পেতে? (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।

ব্যাখ্যা

পাইথন মধ্যে সবকিছু তালিকা সহ একটি বস্তু ,. সব বস্তু সি বাস্তবায়ন কিছু সাজানোর একটি হেডার আছে।

পাইথনে "আকার" সহ তালিকা এবং অন্যান্য অনুরূপ নির্মিত বস্তু, বিশেষ করে, ob_size নামক একটি বৈশিষ্ট্য ob_size , যেখানে বস্তুর উপাদানগুলির সংখ্যা ক্যাশে করা হয়। সুতরাং তালিকাতে বস্তুর সংখ্যা পরীক্ষা করা খুব দ্রুত।

তবে যদি আপনি তালিকাটি আকারের শূন্য কিনা তা পরীক্ষা করেন তবে len ব্যবহার করবেন না - পরিবর্তে, বুলিয়ান প্রসঙ্গে তালিকাটি রাখুন - যদি খালি থাকে তবে এটি মিথ্যা হিসাবে বিবেচিত হয়, অন্যথায় সত্য ।

docs থেকে

len(s)

একটি বস্তুর দৈর্ঘ্য (আইটেম সংখ্যা) ফিরে। যুক্তি একটি ক্রম (যেমন একটি স্ট্রিং, বাইট, টুপল, তালিকা, বা পরিসীমা) বা একটি সংগ্রহ হতে পারে (যেমন একটি অভিধান, সেট, বা হিমায়িত সেট)।

তথ্য মডেল docs থেকে __len__ সঙ্গে len প্রয়োগ করা হয়েছে:

object.__len__(self)

বিল্ট ইন ফাংশন len() । বস্তুর দৈর্ঘ্যটি ফেরত দিতে হবে, একটি পূর্ণসংখ্যা> = 0. এছাড়াও, একটি বস্তু যা __nonzero__() পাইথন 2 বা __bool__() পাইথন 3] পদ্ধতিতে সংজ্ঞায়িত করে না এবং যার __len__() পদ্ধতি শূন্য প্রদান করে তা বিবেচনা করা হয় একটি বুলিয়ান প্রেক্ষাপটে মিথ্যা হতে।

এবং আমরা দেখতে পারি যে __len__ তালিকাগুলির একটি পদ্ধতি:

items.__len__()

ফেরত 3।

অন্তর্নির্মিত ধরনের আপনি len (দৈর্ঘ্য) পেতে পারেন

এবং প্রকৃতপক্ষে আমরা দেখি আমরা এই তথ্যটি সব বর্ণিত ধরনের জন্য পেতে পারি:

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

একটি খালি বা nonempty তালিকা জন্য পরীক্ষা করতে len ব্যবহার করবেন না

একটি নির্দিষ্ট দৈর্ঘ্যের জন্য পরীক্ষা করার জন্য, কেবল সমতা জন্য পরীক্ষা করে দেখুন:

if len(items) == required_length:
    ...

কিন্তু একটি শূন্য দৈর্ঘ্য তালিকা বা বিপরীত জন্য পরীক্ষার জন্য একটি বিশেষ ক্ষেত্রে আছে। যে ক্ষেত্রে, সমতা জন্য পরীক্ষা করবেন না।

এছাড়াও, করবেন না:

if len(items): 
    ...

পরিবর্তে, কেবল করবেন:

if items:     # Then we have some items, not empty!
    ...

অথবা

if not items: # Then we have an empty list!
    ...

আমি এখানে ব্যাখ্যা কিন্তু কেন সংক্ষিপ্ত, if items বা if not items উভয় আরও পঠনযোগ্য এবং আরো অভিনয়।


"বক্সের বাইরে" কার্যকারিতা হিসাবে এটি অনেক বেশি অর্থপূর্ণ হয়ে যাওয়ার কারণে এটি কার্যকর হতে পারে না তবে 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]

মূলত, এটি একটি তালিকা বস্তুর ঠিক অনুরূপ, একটি OOP- বন্ধুত্বপূর্ণ length সম্পত্তি থাকার অতিরিক্ত সুবিধা সহ।

সর্বদা হিসাবে, আপনার মাইলেজ পরিবর্তিত হতে পারে।


পূর্বে আপনার দেওয়া উদাহরণ হিসাবে আপনার প্রশ্নের উত্তর:

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

print items.__len__()

len() ফাংশনটি Python -এ উভয় ধরনের অন্তর্নির্মিত ধরনের এবং লাইব্রেরি প্রকারের সাথে অনেকগুলি ধরণের ব্যবহার করা যেতে পারে।

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




list