تحقق من طول القائمة في Python في 3 خطوات سهلة

في هذه المقالة ، نرى كيفية التحقق من طول القائمة في بعض الخطوات السهلة والتحليل أيهما أفضل.

ما هي قائمة بايثون؟

القائمة عبارة عن مجموعة مصفوفة في Python قادرة على تخزين أنواع بيانات متعددة فيها. يمكنه تخزين عدد صحيح ، أو عدد عشري ، أو سلسلة ، أو منطقية ، أو حتى قائمة داخل قائمة.

int_list = [1, 2, 3, 4, 5]

print(int_list) # output -> [1, 2, 3, 4, 5]

float_list = [1.1, 2.2, 3.3, 4.4, 5.5]

print(float_list) # output -> [1.1, 2.2, 3.3, 4.4, 5.5]

string_list = ['Geekflare', 'Cloudflare', 'Amazon']

print(string_list) # output -> ['Geekflare', 'Cloudflare', 'Amazon']

boolean_list = [True, False]

print(boolean_list) # output -> [True, False]

nested_list = [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

print(nested_list) # [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

different_datatype_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(different_datatype_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

يمكن إنشاء قوائم بايثون باستخدام قوس مربع أو دالة مُنشئ قائمة.

square_bracket_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(square_bracket_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

constructor_list = list((1, 1.1, 'admingate.org', True, [1, 1.1, 'Geekflare', True]))

print(constructor_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

قائمة_قوس_ربيع أعلاه هي قائمة تم إنشاؤها باستخدام قوس مربع ([]) ، constructor_list هي قائمة تم إنشاؤها باستخدام مُنشئ القائمة. كلاهما ينتج نفس إخراج القائمة فقط.

  كل ما تحتاج لمعرفته حول التأليف المشترك في Excel

يمكن أن تكون القائمة قابلة للتغيير ، وتسمح بالتكرارات فيها ويمكن الوصول إليها باستخدام فهرس.

طرق البحث عن طول القائمة

  • len () دالة يحمل في ثناياه عوامل
  • طريقة length_hint من عامل التشغيل
  • وظيفة مخصصة وعداد

الطريقة 1: وظيفة len () يحمل في ثناياه عوامل

len () هي دالة بيثون تحمل في ثناياه عوامل تُستخدم للعثور على طول القائمة وأيضًا لمتكررات أخرى مثل Set و Tuples و Dictionary.

مثال مقتطف

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = len(languages)

print('Length of the Language List is: ',languages_length)

انتاج |

Length of the Language List is:  5

آمل أن يكون لديك Python مثبتًا ، إذا لم يكن كذلك ، يمكنك استخدام مترجم Python عبر الإنترنت لممارسة الكود.

الطريقة 2: طريقة length_hint من عامل التشغيل

يتم استخدام length_hint لإرجاع طول كائن قابل للتكرار (مثل List ، Set ، Tuples ، Dictionary). وهي متوفرة داخل وحدة مشغل بيثون. غير متوفر مثل المشغلين الداخليين الآخرين.

مثال مقتطف

import operator

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = operator.length_hint(languages)

print('Length of the Language List using Operator is: ',languages_length)

انتاج |

Length of the Language List using Operator is:  5

الطريقة الثالثة: وظيفة مخصصة وعداد

في هذه الطريقة للعثور على طول القائمة ، سنستخدم الطريقة التقليدية باستخدام حلقة for-loop و counter.

  كيفية تقسيم الشاشة على iPhone

لذلك ، سنكتب دالة في لغة بايثون. الذي يأخذ قائمة أو غيره من العناصر القابلة للتكرار كوسيطة ويعيد طول المتكرر.

مقتطف وظيفة مخصصة

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

مثال مقتطف

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = iterable_count(languages)

print('Length of the Language List using Custom function is: ',languages_length)

انتاج |

Length of the Language List using Custom function is:  5

تحليل تلك الطرق الثلاث

تحليل الأداء لقائمة كبيرة

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 9999999))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

انتاج |

3.957189619541168e-06 Length of the Integer List using len() is:  9999998
3.0621886253356934e-06 Length of the Integer List using length_hint is:  9999998
0.4059128537774086 Length of the Integer List using Custom function is:  9999998

كما نرى length_hint أسرع (3.0621886253356934e-06) عندما تكون البيانات بالملايين. يرجع السبب في ذلك إلى استخدام تلميحات الطول بواسطة وقت تشغيل CPython. حيث يطلق عليه غلاف الثعبان.

  هل TextNow مجهول؟

تحليل الأداء لقائمة صغيرة

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 100))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

انتاج |

7.813796401023865e-07 Length of the Integer List using len() is:  99
1.1278316378593445e-06 Length of the Integer List using length_hint is:  99
3.462657332420349e-06 Length of the Integer List using Custom function is:  99

كما نرى فإن len () أسرع (7.813796401023865e-07) عندما تكون البيانات بالآلاف أو أقل.

في كلتا الحالتين ، تستغرق وظيفتنا المخصصة مع عداد وقتًا أطول من كلتا الطريقتين.

استنتاج

في هذه المقالة ، نفهم طرقًا مختلفة للتحقق من طول القائمة وكيف يتحققون بسرعة من طول القائمة.