[::-1] في Python مع الأمثلة

⚡ ملخص ذكي

[::-1] في Python هو تعبير قوي لتقطيع البيانات يعكس أي نوع من أنواع التسلسل. Lessتغطي هذه الدروس أساسيات الفهرسة، ومعلمات الشرائح، والفرق بين a[-1] و a[::-1]، وعكس القوائم، وأمثلة عملية.

  • 🔁 Reverse شريحة: [::-1] يستخدم بداية فارغة، ونهاية فارغة، وخطوة -1.
  • 📍 الفهرسة: تبدأ المؤشرات الموجبة من الصفر؛ أما المؤشرات السالبة فتبدأ من النهاية.
  • ؟؟؟؟ [-1] مقابل [::-1]: [-1] تُرجع العنصر الأخير؛ [::-1] تُرجع التسلسل المعكوس بالكامل.
  • 📋 القوائم والسلاسل النصية: يعمل على أي كائن قابل للتكرار مفهرس بما في ذلك القوائم والسلاسل والصفوف والبايتات.
  • سريع وبأسلوب فصيح: تم تنفيذه بلغة C، وهو أسرع بكثير من Python حلقات.
  • 🤖 مساعدة الذكاء الاصطناعي في استخدام مقتطفات التعليمات البرمجية: تشرح أدوات الذكاء الاصطناعي معلمات الشرائح وتحول الحلقات إلى شرائح.

Python شريحة Reverse

ما هو [::-1] في Python?

Python يحتوي على العديد من تركيبات الجملة والتطبيقات المختلفة عندما يتعلق الأمر باستخدام 1. ويمكن تمثيله كـ [-1]، أو يمكن وصفه أيضًا بأنه [::-1].

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

عندما يحدد المبرمج [::-1]، فإنه يقترح أن البرنامج يجب أن يجتاز من البداية إلى النهاية في قائمة معينة. يمكنك إجراء الفهرسة في لغة بايثون، مما يساعد على تقطيع وتقطيع تسلسل قابل للتكرار مثل القائمة أو السلسلة.

ما نوع [::-1] في Python?

هناك طريقتان لتمثيل 1 في بايثون كما هو موضح أدناه: –

  • يمكن تمثيلها في قوس مربع بسيط بدون نقطتين وطريقة أخرى باستخدام صيغة النقطتين المزدوجتين.
  • يمكن تحليل تسلسل قابل للتكرار مثل القائمة أو السلسلة إلى مستوى العنصر باستخدام الأقواس [].
  • داخل الأقواس []، يجب توفير فهرس مختلف.

فيما يلي بناء الجملة للقائمة كما هو موضح أدناه: -

بناء الجملة: -

SEQUENCE [START: STOP: STEP]

التركيب النحوي أعلاه هو تمثيل عام. التركيب النحوي للأقواس المربعة التي لا تحتوي على نقطتين يتم تمثيله على النحو التالي:

بناء الجملة: -

SEQUENCE [-1]

يتم تمثيل بناء الجملة للأقواس المربعة ذات النقطتين على النحو التالي:

بناء الجملة: -

SEQUENCE[::-1]

توضيح: -

  • تمثل معلمة البداية رقم فهرس البداية.
  • تمثل المعلمة stop رقم الفهرس النهائي أو الأخير.
  • خطوة المعلمة هي معلمة اختيارية توفر زيادة للتحديد. في بناء الجملة، تتم تهيئة عدد الخطوات كـ -1.
  • يمكن أن يكون التسلسل عبارة عن سلسلة أو قائمة أو قاموس في بناء الجملة أعلاه.

الفرق بين [-1] و[::-1] في Python

يستخدم [-1] A للمؤشرات السلبية ويساعد في تحديد العناصر بترتيب عكسي في قائمة معينة. ويشير إلى بداية القائمة من نهاية الترتيب العكسي. هنا، يشير [-1] إلى العنصر الأول من الموضع الأخير. فيما يلي مثال يشرح استخدام A[-1]

مثال: -

Python Code:

b= [7,4,5,6]
print ("The list is", b)
print (" The last element in the list is", b [-1])

الإخراج:

The list is [7, 4, 5, 6]
The last element in the list is 6

يبدو A[::-1] وA[-1] متشابهين من حيث التنفيذ ولكنهما مختلفان من حيث بناء الجملة. يحتوي بناء الجملة الأول على ثلاث معلمات، في حين أن بناء الجملة الأخير يحتوي على معلمة واحدة فقط.

تمثل المعلمتان الأوليان الموجودتان في A[::-1] بداية القائمة وتوقفها. إذا تم حذف معلمات البداية والتوقف، فسيتم إرجاع كافة العناصر الموجودة في القائمة.

تعرض هذه المعلمة الأخيرة الإخراج بترتيب عكسي. هذه المعلمة اختيارية.

فيما يلي مثال يوضح استخدام A[::-1]

مثال: -

Python Code:

b= [7,4,5,6]
print ("The list is", b)
print (" The reversed list as determined is", b [::-1])

الإخراج:

The list is [7, 4, 5, 6]
The reversed list as determined is [6, 5, 4, 7]

التفسير:

ما سبق Python لا ينتج الكود نفس النتائج للقائمة التي تم إنشاؤها. بدلاً من ذلك، يوفر قائمة عكسية للقائمة الأساسية المقدمة كقيمة إدخال.

يعتمد الاختلاف المذكور أعلاه على Pythonقواعد الفهرسة الخاصة بـ 's.

كيفية إجراء الفهرسة في Python?

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

Python ينفذ الفهرسة الصفرية للقوائم. في حالة الفهرسة الصفرية، يتم تعيين العنصر الأول في القائمة بالموضع 0.

لنأخذ مثالاً ونحاول الوصول إلى عنصري البداية والثانية في قائمة بايثون.

مثال: -

Python Code:

b= [7,4,5,6]
print ("The list is", b)
print (" The reverse ordered list as determined is", b [::-1])
print (" The second item found in list is", b [1])
print (" The first or beginning item in the list is", b [0])

الإخراج:

The list is [7, 4, 5, 6]
The reverse ordered list as determined is [6, 5, 4, 7]
The second found item in the list is 4
The first or beginning item in the list is 7

التفسير:

كما هو موضح في الكود أعلاه، للوصول إلى العنصر الأول في القائمة، تم تطبيق 0 كمؤشر داخل مربع نوع القائمة. وبالمثل، تم تطبيق 1 كفهرس داخل مربع نوع القائمة للوصول إلى العنصر الثاني في القائمة. يمكن أن تنطبق فهرسة القائمة أيضًا على القواميس والسلاسل والصفوف.

دعونا نأخذ مثالا على فهرسة نوع السلسلة في بيثون.

على سبيل المثال:

Python Code:

b= "GURU99"
print ("The list is", b)
print (" The reverse ordered list as determined is", b [::-1])
print (" The second item found in list is", b [1])
print (" The first or beginning item in the list is", b [0])

الإخراج:

The list is GURU99
The reverse ordered list as determined is 99URUG
The second item found in the list is U
The first or beginning item in the list is G

التفسير:

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

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

مثال: -

Python Code:

b= "GURU99"
print ("The list is", b)
print (" The reverse ordered list as determined is", b [::-1])
print (" The second item found in list is", b [-2])
print (" The first or beginning item in the list is", b [-1])

الإخراج:

The list is GURU99
The reverse ordered list as determined is 99URUG
The second item found in the list is 9
The first or beginning item in the list is 9

يؤدي الفهرسة إلى إرجاع عنصر واحد؛ بينما يؤدي التقطيع إلى إرجاع نطاق.

دور القطع في Python

بكلمات أبسط، شريحة تعني قطع شيء ما. يسمح بتقطيع قائمة في بيثون.

وهنا مدى أهمية التقطيع Python:

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

يمكن تحقيق التقطيع في شكلين أساسيين.

  • النموذج الأول هو توفير معلمات فهرس البداية والإيقاف للتسلسل. من خلال القيام بذلك، سيعيد التسلسل جميع العناصر الممكنة بين بداية التسلسل وتوقفه [النهاية -1] للتسلسل.
  • الطريقة الثانية هي توفير معلمات فهرس البداية والتوقف للتسلسل مع الخطوة. تتيح الخطوة إرجاع عناصر محددة أو محددة ضمن نطاق من العناصر بين البداية والتوقف.

فيما يلي بناء الجملة للشكل الأول من التقطيع: -

بناء الجملة:

SEQUENCE [START: STOP]

فيما يلي بناء الجملة للشكل الثاني من التقطيع: -

بناء الجملة:

SEQUENCE [START: STOP: STEP]

دعونا نأخذ مثال النموذج الأول لمثال التقطيع كما هو موضح أدناه.

مثال

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[0:3]
print (" The substring in the list is", Substring)

الإخراج:

The list is GURU99
The substring in the list is GUR

دعونا نأخذ مثال الشكل الثاني لمثال التقطيع كما هو موضح أدناه.

مثال

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[0:9:2]
print (" The substring in the list is", Substring)

الإخراج:

The list is GURU99
The substring in the list is GR9

Python يقوم أيضًا بإجراء تقطيع سلبي لتسلسل قابل للتكرار. يمكّنك من الوصول إلى مجموعة من العناصر أو العناصر من نهاية التسلسل.

دعونا نأخذ مثالاً للوصول إلى العناصر الثلاثة الأخيرة من التسلسل كما هو موضح أدناه.

مثال

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[-5:-1]
print (" The substring in the list is", Substring)

الإخراج:

The list is GURU99
The substring in the list is URU9

كيفية عكس Python قائمة باستخدام [::-1] في Python?

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

مثال

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[::-1]
print (" The reverse of string GURU99 is", Substring)

الإخراج:

The list is GURU99
The substring in the list is 99URUG

التفسير:

هنا، يقوم الكود بجلب كافة عناصر السلسلة من الموضع الأخير. يبدأ بـ -1 ويجلب جميع العناصر أو العناصر من الموضع الأخير. يخبر سطر التعليمات البرمجية أعلاه بايثون بالتراجع عن العنصر الأخير والانتقال إلى العنصر الأول، مما يؤدي إلى قائمة عكسية أو سلسلة.

مثال على [::-1] في Python

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

لنأخذ مثالاً على كيفية استخدام الرقم 1 في بايثون لـtracقائمة أصغر من قائمة أكبر:

مثال

Python Code:

b = [1, 2, 3, 4, 5, 6, 7]
slist = b[1::]
print("the smaller list from larger list is:",slist)

الإخراج:

the smaller list from the larger list is: [2, 3, 4, 5, 6, 7]

التفسير:

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

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

إنها شريحة بدون بداية، وبدون نهاية، وخطوة مقدارها -1. وهي تُرجع تسلسلًا جديدًا بجميع العناصر بترتيب عكسي.

تقوم المساعدات المدعومة بالذكاء الاصطناعي مثل Copilot و ChatGPT بشرح معلمات البدء والإيقاف والخطوة وتحويل حلقات for المطولة إلى تعبيرات شرائح موجزة.

نعم. توصي أدوات الذكاء الاصطناعي باستخدام list(reversed(seq)) عندما تكون سهولة القراءة أهم من الإيجاز، وتشرح المفاضلات المتعلقة بالوقت والذاكرة لكل منهما.

تُعيد الدالة a[-1] العنصر الأخير فقط. أما الدالة a[::-1] فتُعيد التسلسل بأكمله معكوسًا.

نعم. تعمل هذه الدالة على أي نوع من أنواع التسلسلات، بما في ذلك القوائم والسلاسل النصية والصفوف والبايتات ومصفوفات البايتات. ويحتفظ التسلسل المُعاد بنوعه الأصلي.

تُعدّ عملية التقطيع أسرع عمومًا لأنها تُنفّذ بلغة C وتُعيد كائنًا كاملًا. أما الدالة reversed() فتُعيد مُكرِّرًا كسولًا مُوفّرًا للذاكرة ولكنه أبطأ.

لا. تُعيد عملية التقطيع تسلسلاً جديداً. تبقى القائمة أو السلسلة أو الصف الأصلي دون تغيير. استخدم دالة list.reverse() لعكس ترتيب عناصر القوائم في مكانها.

نعم. يدعم NumPy نفس صيغة الشرائح، حيث يُعيد عرضًا معكوسًا بدلًا من نسخة. استخدم .copy() إذا كنت بحاجة إلى مصفوفة مستقلة.

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