بايثون xrange مقابل النطاق

Python Xrange Vs Range



حتى الإصدار 2.x من Python ، كان هناك ما مجموعه طريقتان أساسيتان مستخدمتان في هذه اللغة لإنشاء قائمة بالأعداد الصحيحة ضمن النطاق المقدم. الطريقتان مدرجتان أدناه:

نطاق ()
xrange ()







من الآن فصاعدًا ، مع أحدث إصدار من Python (3 وما بعده) ، تم سحب النطاق () ، ثم تم تغيير xrange () إلى النطاق (). الآن في Python 3 ، هناك وظيفة واحدة فقط لهذه الطريقة ، أي النطاق (). في Python 3 ، تعد وظيفة range () مجرد طريقة أخرى لتنفيذ الإصدار الأقدم من xrange () من python 2.x. هنا ، سوف نربط بين الاثنين.



Xrange ()

يتم استخدام xrange () لإنشاء تسلسل رقمي مثل وظيفة range ().



بناء الجملة

الصيغة المستخدمة لتعريف xrange () هي:





xrange(بدايةونهايةوخطوة)

تُستخدم الوظيفة لتحديد نطاق الأرقام بدءًا من (مدرج) حتى النهاية (غير مدرج).

العوامل

فيما يلي قائمة المعلمات المطلوبة:



& emsp ؛ ابدأ: موضع البداية للتسلسل الرقمي
& emsp ؛ النهاية: موضع إنهاء التسلسل الرقمي
& emsp؛ الخطوة: التمييز بين رقمين متتاليين في السلسلة.

أمثلة

في المثال التالي ، سوف نتحقق من طرق تعريف xrange.

هنا ، سنحدد الموضع النهائي فقط.

لذلك ، يتم تعيين القيمة النهائية على 5 ، ثم نحصل على الموضع النهائي مطبوعًا ، كما هو موضح أدناه:

الآن ، سنرى طريقة استدعاء النطاق ، سيكون بناء الجملة لاستدعاء النهاية:

>>>x= xrange(نهاية)

ثم سنطبعها.

سنحصل على النطاق في الإخراج ، كما هو موضح أعلاه.

الآن ، سوف نحدد كلا من نقطتي البداية والنهاية. هنا ، نقطة البداية هي 2 ، ونقطة النهاية هي 5. ثم قمنا بطباعة موضع البداية والنهاية ، كما هو موضح أدناه:

بعد ذلك ، سننشئ سلسلة من الأرقام من نقطتي البداية والنهاية ، أي من 2 إلى 5.

>>>و= xrange(بدايةونهاية)

أخيرًا ، سوف نتحقق من طريقة تحديد نقطة البداية والخطوة ونقطة النهاية. بمجرد تحديد جميع المعلمات الثلاثة ؛ سنتصل بهم على غرار الطريقة الموضحة أدناه:

الآن ، لاستدعاء xrange لهذه المعلمات الثلاثة ، سنستخدم الصيغة التالية:

>>>مع= xrange(بدايةوخطوةونهاية)

نطاق ()

يتم استخدام Range () لإنشاء قائمة وهي وظيفة أسرع لتكرارات متعددة.

بناء الجملة

يتم استخدام الصيغة التالية:

>>> نطاق(بدايةونهايةوخطوة)

أمثلة

في الحالة الأولى ، سنحدد القيمة النهائية. الصيغة المستخدمة لهذا هي:

>>> نطاق(نهاية)

لذلك ، في المثال الموضح أدناه ، سنستخدم 3 كقيمة نهائية للنطاق. عندما نطبعها ، فإنها تُرجع القيم ، باستثناء القيمة النهائية.

في المثال اللاحق ، نستخدم مثال وصف نقطة البداية والنهاية. ستبدأ القيمة من 1 وتنتهي عند 10 (باستبعادها). تم تضمين نقطة البداية ، ولكن تم حذف نقطة النهاية. بناء الجملة مشابه للصيغة الواردة أدناه:

>>> نطاق (بدايةونهاية)

لذلك ، نحدد نقطة البداية ثم نقطة النهاية ، وهي 1 و 10 على التوالي.

الآن ، في المثال التالي ، سيكون لدينا وظيفة الخطوة. الدالة التي تحدد الفجوة بين أي نقطتين داخل المتسلسلة. ستبدأ القيمة من 0 وتنتهي عند 10 (باستبعادها). الصيغة المستخدمة مذكورة أدناه:

>>> نطاق (بدايةوخطوةونهاية)

المثال أدناه ، حيث 2 هي قيمة الخطوة.

مزايا

نطاق ()

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

xrange ()

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

أوجه التشابه بين نطاق Python 2 و Python 3 و xrange

يحتوي xrange في Python 2 على تمثيل وصفي في شكل سلسلة ، وهو مشابه جدًا لقيمة كائن النطاق في Python 3.

قيمة xrange () في Python 2 قابلة للتكرار ، وكذلك rang () في Python 3.

xrange () و range () لهما قيم خطوة ونهاية ونقطة بداية. في كلتا الحالتين ، تعد الخطوة حقلاً اختياريًا ، وكذلك قيمة البداية.

يدعم كل من xrange من Python 2 و 3 طول يمكن فهرسته بترتيب أمامي أو عكسي. هنا مثال على ذلك:

الاختلافات بين النطاق () و xrange ()

نظرًا لأن xrange () يقيِّم فقط كائن المولد بالقيم التي يحتاجها التقييم البطيء ، فمن الأسرع تنفيذه عبر النطاق (). يساعد النطاق () في إرجاع القائمة ويحتوي على جميع الكائنات التي يمكن استخدامها ، بينما يقوم xrange () بإرجاع الكائنات المرتبطة بقائمة ولا يمكن تطبيقه عليها حتى نتمكن من اعتبارها عيبًا.

المتغير المستخدم في الدالة range () يخزن قيمة النطاق وبالتالي يأخذ الكثير من الذاكرة مقارنة بـ xrange () الذي يأخذ فقط بعض الذاكرة بسبب المتغيرات. يعرض النطاق () كائن نطاق بينما يقوم xrange () بإرجاع كائن منشئ.

الدالة range (1 ، 7 ، 2) ستعيد المخرجات [1 ، 3 ، 5] وستنتج xrange المدخلات (1 ، 7 ، 2) الناتج [1 ، 3 ، 5]. هذه هي الطريقة التي يمكننا بها افتراض أنها متشابهة في النمط.

استنتاج

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