ازگر xrange بمقابلہ رینج۔

Python Xrange Vs Range



ازگر ورژن 2.x تک ، اس زبان میں کل دو بنیادی طریقے استعمال کیے گئے تھے جو فراہم کردہ رینج کے اندر عدد کی فہرست تیار کرتے ہیں۔ دو طریقے ذیل میں درج ہیں:

رینج ()
xrange ()







آگے بڑھتے ہوئے ، ازگر کے تازہ ترین ورژن (3 کے بعد) کے ساتھ ، رینج () کو واپس لے لیا گیا ، اور پھر xrange () کو رینج () میں تبدیل کردیا گیا۔ اب ازگر 3 میں ، اس طریقے کے لیے صرف ایک فنکشن ہے ، یعنی رینج ()۔ ازگر 3 میں ، رینج () فنکشن ازگر 2.x کے xrange () کے پرانے ورژن کو لاگو کرنے کا ایک اور طریقہ ہے۔ یہاں ، ہم ان دونوں سے متعلق کریں گے۔



Xrange ()

xrange () رینج () فنکشن کی طرح ایک نمبر ترتیب بنانے کے لیے استعمال ہوتا ہے۔



نحو۔

xrange () کی وضاحت کے لیے استعمال ہونے والا نحو یہ ہے:





xrange(شروع کریں،ختم،قدم)

فنکشن کا استعمال نمبروں کی حد کی وضاحت کے لیے کیا جاتا ہے (شامل ہے) آخر تک (شامل نہیں ہے)۔

پیرامیٹرز

مطلوبہ پیرامیٹرز کی فہرست درج ذیل ہے۔



& emsp Start شروع کریں: نمبر ترتیب کی ابتدائی پوزیشن۔
& emsp End اختتام: نمبر کی ترتیب کی اختتامی پوزیشن۔
& emsp Step مرحلہ: سیریز میں مسلسل دو نمبروں کے درمیان فرق۔

مثالیں

مندرجہ ذیل مثال میں ، ہم xrange کی وضاحت کرنے کے طریقے چیک کریں گے۔

یہاں ، ہم صرف اختتامی پوزیشن کی وضاحت کریں گے۔

لہذا ، اختتامی قیمت 5 کے طور پر مقرر کی گئی ہے ، اور پھر ہمیں اختتامی پوزیشن چھپی ہوئی ہے ، جیسا کہ ذیل میں دکھایا گیا ہے:

اب ، ہم کالنگ رینج کا طریقہ دیکھیں گے ، کال اینڈ کا نحو یہ ہوگا:

>>>ایکس= xrange(ختم)

پھر ہم اسے چھپائیں گے۔

جیسا کہ اوپر دکھایا گیا ہے ، ہم آؤٹ پٹ میں رینج حاصل کریں گے۔

اب ، ہم ابتدائی اور اختتامی دونوں کی وضاحت کریں گے۔ یہاں ، نقطہ آغاز 2 ہے ، اور اختتامی نقطہ 5 ہے۔ پھر ہم نے شروع اور اختتامی پوزیشنوں کو پرنٹ کیا ، جیسا کہ ذیل میں دکھایا گیا ہے:

اس کے بعد ، ہم اپنے شروع اور اختتامی پوائنٹس یعنی 2 سے 5 تک نمبروں کی ترتیب بنائیں گے۔

>>>اور= xrange(شروع کریں،ختم)

آخر میں ، ہم نقطہ آغاز ، مرحلہ اور اختتامی نقطہ کی وضاحت کرنے کا طریقہ چیک کریں گے۔ ایک بار جب ہم نے تینوں پیرامیٹرز کی وضاحت کر دی ہم انہیں ذیل میں دکھائے گئے طریقے کی طرح کال کریں گے:

اب ، ان تین پیرامیٹرز کے لیے xrange کو کال کرنے کے لیے ، ہم درج ذیل نحو کا استعمال کریں گے:

>>>کے ساتھ۔= xrange(شروع کریں،قدم،ختم)

رینج ()

Range () ایک فہرست بنانے کے لیے استعمال کیا جاتا ہے اور ایک سے زیادہ تکرار کے لیے ایک تیز کام ہے۔

نحو۔

مندرجہ ذیل نحو استعمال کیا جاتا ہے:

>>> رینج(شروع کریں،ختم،قدم)

مثالیں

پہلے کیس کے لیے ، ہم اختتامی قیمت کی وضاحت کریں گے۔ اس کے لیے استعمال ہونے والا نحو یہ ہے:

>>> رینج(ختم)

لہذا ، ذیل میں دی گئی مثال میں ، ہم 3 کو حد کی اختتامی قیمت کے طور پر استعمال کریں گے۔ جب ہم اسے پرنٹ کرتے ہیں تو ، یہ آخری قیمت کو چھوڑ کر اقدار لوٹاتا ہے۔

بعد کی مثال میں ، ہم شروع اور اختتامی نقطہ بیان کرنے کی مثال استعمال کر رہے ہیں۔ قیمت 1 سے شروع ہوگی اور 10 پر ختم ہوگی (اسے چھوڑ کر)۔ نقطہ آغاز شامل ہے ، لیکن اختتامی نقطہ کو چھوڑ دیا گیا ہے۔ نحو ذیل میں دیئے گئے کی طرح ہے:

>>> رینج (شروع کریں،ختم)

لہذا ، ہم نقطہ آغاز اور پھر اختتامی نقطہ کی وضاحت کرتے ہیں ، جو بالترتیب 1 اور 10 ہے۔

اب ، بعد کی مثال میں ، ہمارے پاس سٹیپ فنکشن ہوگا۔ فنکشن جو تسلسل کے اندر کسی بھی دو پوائنٹس کے درمیان فرق کی وضاحت کرتا ہے۔ قیمت 0 سے شروع ہوگی اور 10 پر ختم ہوگی (اسے چھوڑ کر)۔ استعمال شدہ نحو ذیل میں دیا گیا ہے:

>>> رینج (شروع کریں،قدم،ختم)

مثال ذیل میں دی گئی ہے ، جہاں 2 سٹیپ ویلیو ہے۔

فوائد

رینج ()

اگر تکرار کئی بار کی جائے تو یہ تیز تر ہے۔ رینج () میں صرف ریئل ٹائم انٹیجر آبجیکٹ ویلیوز ہیں۔ میموری کے لحاظ سے ، یہ اچھی طرح سے عمل نہیں کرتا ہے۔

xrange ()

اسے ہر بار انٹیجر آبجیکٹ کو دوبارہ بنانا پڑتا ہے۔ xrange () نہیں ہے کیونکہ یہ سلائسز اور فہرست کے طریقوں کی حمایت نہیں کرتا ہے۔ xrange () میموری کی اتنی ہی مقدار لیتا ہے۔ لہذا ، جہاں تک کارکردگی کا تعلق ہے ، خاص طور پر جب صارفین بڑی رینج ویلیو پر تکرار کر رہے ہیں ، xrange () بہت بہتر کارکردگی کا مظاہرہ کرتا ہے۔

ازگر 2 اور ازگر 3 کی حد اور xrange کے درمیان مماثلت۔

ازگر 2 کے xrange میں سٹرنگ کی شکل میں وضاحتی نمائندگی ہے ، جو کہ ازگر 3 کی رینج آبجیکٹ ویلیو سے بہت ملتی جلتی ہے۔

ازگر 2 میں xrange () کی قیمت قابل تکرار ہے ، اسی طرح ازگر 3 میں rang () ہے۔

xrange () اور range () دونوں میں ایک مرحلہ ، اختتام اور نقطہ نقطہ اقدار ہیں۔ دونوں صورتوں میں ، قدم ایک اختیاری فیلڈ ہے ، اسی طرح اسٹارٹ ویلیو ہے۔

ازگر 2 اور 3 کی دونوں xrange سپورٹ لمبائی جو آگے یا ریورس آرڈر میں انڈیکس کی جا سکتی ہے۔ یہاں اسی کی ایک مثال ہے:

رینج () اور xrange () کے درمیان فرق

چونکہ xrange () سست تشخیص کے ذریعہ درکار اقدار کے ساتھ صرف جنریٹر آبجیکٹ کا جائزہ لیتا ہے ، اس لیے حد () پر عمل درآمد کرنا تیز تر ہے۔ رینج () فہرست کو واپس کرنے میں مدد کرتی ہے اور اس میں وہ تمام اشیاء ہیں جو استعمال کی جاسکتی ہیں ، جبکہ xrange () فہرست سے وابستہ اشیاء کو لوٹاتا ہے اور ان پر لاگو نہیں کیا جاسکتا تاکہ ہم اسے نقصان کے طور پر شمار کرسکیں۔

رینج () فنکشن میں استعمال ہونے والا متغیر رینج کی قدر کو محفوظ کرتا ہے اور اس طرح xrange () کے مقابلے میں بہت زیادہ میموری لیتا ہے جو متغیر کی وجہ سے صرف کچھ میموری لیتا ہے۔ رینج () ایک رینج آبجیکٹ لوٹاتا ہے جبکہ ، xrange () ایک جنریٹر آبجیکٹ لوٹاتا ہے۔

رینج (1 ، 7 ، 2) فنکشن آؤٹ پٹ [1 ، 3 ، 5] اور ان پٹ xrange (1، 7، 2) آؤٹ پٹ [1 ، 3 ، 5] پیدا کرے گا اس طرح ہم فرض کر سکتے ہیں کہ وہ پیٹرن میں ایک جیسے ہیں۔

نتیجہ

رینج () اور xrange () دونوں مختلف خصوصیات ہیں ، جیسا کہ اوپر بحث کی گئی ہے۔ اس ٹیوٹوریل میں مذکور تمام موازنہ ، مثالوں کے ساتھ ، قارئین کے لیے ان کی ضروریات کے مطابق اپنی پسند کا بہتر طریقہ منتخب کرنے میں مددگار ثابت ہوگا۔