Python وظيفة len(): كيفية العثور على طول السلسلة

⚡ ملخص ذكي

Python len() هي دالة مدمجة تُرجع عدد العناصر في كائن، مثل الأحرف في سلسلة نصية أو العناصر في قائمة أو صف أو قاموس أو مجموعة.

  • 🔢 بناء الجملة: تأخذ الدالة len(object) وسيطًا واحدًا وتعيد عددًا صحيحًا، وهو العدد الإجمالي للعناصر التي تحتويها.
  • 🔠 سلاسل: بالنسبة للسلسلة النصية، تقوم الدالة len() بحساب كل حرف، بما في ذلك المسافات والأرقام وعلامات الترقيم.
  • 📦 مجموعات: تقيس الدالة len() حجم القوائم والصفوف والقواميس والمجموعات وكائنات النطاق بنفس الطريقة.
  • ⚙️ الأداء: يتم تنفيذ الدالة len() في زمن ثابت O(1) لأن Python يخزن طول كل كائن كخاصية.
  • 🚫 خطأ مطبعي: يؤدي استدعاء الدالة len() على عدد صحيح أو قيمة None إلى ظهور خطأ من نوع TypeError، لأن هذه الأنواع ليس لها طول.
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم مساعدات البرمجة المدعومة بالذكاء الاصطناعي بإنشاء عمليات فحص len()، وتستخدم مسارات التعلم الآلي len() لحشو وتجميع التسلسلات.

Python وظيفة لين ().

ما هو Python دالة len()؟

استخدم لين () الدالة هي دالة مدمجة في Pythonيمكنك استخدام الدالة len() للحصول على طول سلسلة نصية، أو مصفوفة، أو قائمة، أو صف، أو قاموس، أو أي كائن آخر. ولأن عدد العناصر يُخزَّن في الكائن نفسه بدلاً من إعادة حسابه في كل مرة، فإن len() تساعدك على التحقق من الحجم بسرعة وتحسين أداء برنامجك.

بناء الجملة لـ Python وظيفة لين ().

استخدم Python تستخدم الدالة len() الصيغة التالية:

len(value)

المعاملات

القيمة: الكائن المعطى - مثل سلسلة نصية أو قائمة أو صف أو قاموس أو مجموعة - الذي تريد قياس طوله.

قيمة الإرجاع

تُعيد الدالة len() عددًا صحيحًا، أي عدد الأحرف في سلسلة نصية أو عدد العناصر في مصفوفة أو قائمة أو مجموعة. ويختلف المعنى الدقيق للقيمة المُعادة باختلاف نوع الكائن المُمرر إليها.

  • سلاسل: تقوم الدالة len() بإرجاع عدد الأحرف في السلسلة، بما في ذلك علامات الترقيم والمسافات وكل أنواع الأحرف الخاصة.
  • فارغة: السلسلة الفارغة أو المجموعة الفارغة تُرجع 0، لأنها لا تحتوي على أي عناصر.
  • مجموعات: تقوم الدالة المدمجة len() بإرجاع عدد العناصر المخزنة في مجموعة.
  • خطأ مطبعي: تعتمد الدالة len() على نوع الكائن المُمرر إليها. تمرير قيمة ليس لها طول، مثل عدد صحيح، سيؤدي إلى ظهور خطأ من نوع TypeError.
  • قاموس: بالنسبة للقاموس، يتم احتساب كل زوج من المفتاح والقيمة كوحدة واحدة، لذا فإن الدالة len() تُرجع عدد المفاتيح.

أمثلة على Python وظيفة لين ().

توضح الأمثلة التالية كيفية استخدام الدالة len() لإيجاد طول سلاسل نصية مختلفة Python الكائنات، بما في ذلك السلسلة النصية، والقائمة، والصف، والقاموس، والمصفوفة.

مثال 1: كيفية إيجاد طول خيط

# testing len() 
str1 = "Welcome to  Guru99 Python Tutorials"
print("The length of the string  is :", len(str1))

الإخراج:

The length of the string  is : 35

مثال 2: كيفية إيجاد طول قائمة

# to find the length of the list

list1 = ["Tim","Charlie","Tiffany","Robert"]

print("The length of the list is", len(list1))

الإخراج:

The length of the list is 4

مثال 3: كيفية إيجاد طول مجموعة مرتبة

# to find the length of the tuple

Tup = ('Jan','feb','march')

print("The length of the tuple is", len(Tup))

الإخراج:

The length of the tuple is 3

مثال 4: كيفية إيجاد طول القاموس

# to find the length of the Dictionary

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}

print("The length of the Dictionary is", len(Dict))

الإخراج:

The length of the Dictionary is 4

مثال 5: كيفية إيجاد طول المصفوفة

# to find the length of the array

arr1 = ['Tim','Charlie','Tiffany','Robert']

print("The length of the Array is", len(arr1))

الإخراج:

The length of the Array is 4

كيفية إيجاد طول سلسلة نصية بدون استخدام الدالة len() Python

تُعدّ دالة len() أسرع وأسهل طريقة لقياس طول سلسلة نصية، ولكن يمكنك أيضًا عدّ الأحرف يدويًا. هذا تمرين شائع في مقابلات البرمجة، وكل دالة تقوم ببساطة بالمرور على السلسلة النصية مع زيادة عداد.

يستخدم النهج الأكثر شيوعًا حلقة تكرارية (for loop):

# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
    count += 1
print("The length is", count)

الإخراج:

The length is 6

يستخدم خيار أقصر دالة sum() مع تعبير مولد، حيث يضيف 1 لكل حرف في السلسلة:

mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)

الإخراج:

The length is 6

تتضمن الطرق الأخرى لحساب عدد الأحرف بدون استخدام الدالة len() ما يلي:

  • حلقة تكرارية تقوم بتقطيع السلسلة حتى تصبح فارغة، مع زيادة عداد في كل دورة.
  • الدالة enumerate()، التي tracks هو فهرس كل حرف أثناء تكراره.
  • دالة تكرارية تُرجع 1 زائد طول السلسلة الفرعية المتبقية.

تُعدّ هذه الطرق اليدوية أبطأ من دالة len() المدمجة، لذا يُنصح باستخدامها فقط للتعلم أو التدريب على المقابلات. أما في البرمجة اليومية، فتبقى دالة len() الخيار الأسرع والأكثر وضوحًا.

كيف يمكن لل Python هل تعمل دالة len() داخليًا؟

إن فهم كيفية عمل الدالة len() يفسر سبب سرعتها الفائقة. عند استدعاء الدالة len() على كائن، Python لا يقوم بفحص كل عنصر على حدة. بدلاً من ذلك، يستدعي الدالة الخاصة بالكائن __len__()، مما يعني أن التعبير len(x) مكافئ لـ x.__len__().

تخزن الحاويات المدمجة مثل السلاسل النصية والقوائم والصفوف والقواميس والمجموعات حجمها كخاصية. في كل مرة تضيف فيها عنصرًا أو تزيله، Python يقوم هذا الإجراء بتحديث هذا العدد المخزن. عند استدعاء الدالة len()، فإنه ببساطة يقرأ تلك القيمة المخزنة مسبقًا ويعيدها.

بما أن طول الكائن معروف مسبقًا، فإن دالة len() تعمل في زمن ثابت، يُكتب O(1). يستغرق الأمر نفس الوقت سواءً احتوى الكائن على خمسة عناصر أو خمسة ملايين عنصر. يمكنك أيضًا إضافة دعم دالة len() إلى فئاتك الخاصة عن طريق تعريف دالة __len__() تُرجع عددًا صحيحًا.

class Team:
    def __len__(self):
        return 11

squad = Team()
print(len(squad))

الإخراج:

11

هذا التصميم هو السبب في أن الدالة len() تتصرف بشكل متسق عبر كل نوع مدمج، بالإضافة إلى أي كائن مخصص يقوم بتنفيذ طريقة __len__().

" تعلم المزيد عن Python طرق السلسلة

الأسئلة الشائعة

نعم. تقوم الدالة len() بحساب كل حرف في سلسلة نصية، بما في ذلك المسافات، وعلامات الجدولة، والأرقام، وعلامات الترقيم. على سبيل المثال، len(“Guru (99!”) يعيد 8، لأن المسافة وعلامة التعجب يتم احتساب كل منهما كحرف واحد.

تُرجع الدالة len() القيمة 0 للسلسلة الفارغة، لأنها لا تحتوي على أي أحرف. لا تبدأ الدالة len() من الصفر؛ بل تبدأ العد من 1، لذا فإن len(“a”) تُرجع 1 و len(“”) تُرجع 0.

لا تخزن الأعداد الصحيحة عناصر متعددة، لذا ليس لها طول. استدعاء الدالة len(123) يُظهر الخطأ التالي: "TypeError: object of type 'int' has no len()". حوّل العدد أولاً باستخدام len(str(123)) عندما تريد حساب أرقامه.

نعم. بالنسبة للقواميس، تُعيد الدالة len() عدد أزواج المفاتيح والقيم، مع احتساب كل زوج مرة واحدة. أما بالنسبة للمجموعات، فتُعيد الدالة len() عدد العناصر الفريدة، لأن المجموعة تتجاهل القيم المكررة تلقائيًا.

تُعيد الدالة len() عدد نقاط ترميز يونيكود في السلسلة النصية، لذا تُحسب معظم الأحرف والرموز المُشكّلة كنقطة واحدة. مع ذلك، تستخدم بعض الرموز التعبيرية والأحرف المركبة عدة نقاط ترميز، لذا قد تُعيد الدالة len() أكثر من نقطة واحدة لها.

مرر قيمة len كمفتاح لدالة max(): تُعيد الدالة max(words, key=len) أطول سلسلة نصية في القائمة. وبالمثل، تُعيد الدالة min(words, key=len) أقصر سلسلة نصية. هذا يُغني عن كتابة حلقة تكرار يدوية لمقارنة كل طول.

تستخدم مسارات التعلم الآلي الدالة len() باستمرار للتحقق من أحجام مجموعات البيانات، والتأكد من تطابق الميزات والتصنيفات، وقياس أطوال التسلسلات. غالبًا ما تقوم النماذج بإضافة أو اقتطاع نص ليصبح طوله مساويًا لطول الدالة len()، بحيث تتشارك دفعات البيانات نفس الشكل.

نعم. يقوم GitHub Copilot بإكمال عمليات التحقق من طول البيانات وحساب الحلقات تلقائيًا بناءً على تعليق قصير يصف هدفك. أما مساعدو الذكاء الاصطناعي، فيتجاوزون ذلك، حيث يكتبون منطق التحقق من الطول، ويضيفون عبارات حماية ضد أخطاء TypeError، ويجرون اختباراتك نيابةً عنك.

تلخيص هذه التدوينة بـ: