كيفية عكس السلسلة في Python (5 طرق)

⚡ ملخص ذكي

Revإدخال سلسلة في Python يستخدم خمس تقنيات مثبتة: حلقة for، وحلقة while، وتدوين الشريحة [::-1]، ووظيفة reversed()، والتكرار. Lessتغطي هذه الدراسة بناء الجملة، ونماذج التعليمات البرمجية، والمخرجات، ومعايير الأداء.

  • 🔁 لحلقة: تكرار ودمج الأحرف.
  • 🔂 حائط اللوب: قم بإنقاص الفهرس وإضافة الأحرف.
  • التقطيع [::-1]: أسرع طريقة، أسرع بحوالي 7 مرات من عكس القائمة.
  • 📦 معكوسة() + ضم: مُكرِّر مُناسب للذاكرة للسلاسل النصية الكبيرة.
  • 🔄 العودية: يكرر العملية على string[1:] حتى تصبح فارغة.
  • 🤖 إعادة هيكلة الذكاء الاصطناعي: يقوم الذكاء الاصطناعي بتحويل الحلقات إلى تقطيع.

Reverse خيط في Python

السلسلة عبارة عن قائمة مرتبة أو سلسلة من الأحرف. السلاسل هي إحدى هياكل البيانات التي تأتي معها Python. بينما كنت تعمل مع سلاسل في Pythonقد ترغب في عكس جميع الأحرف. قد يكون من الجيد القيام بذلك عند بناء لعبة باليندرم.

تحتوي السلسلة المعكوسة على الحرف الأول كآخر حرف وهكذا. ومع ذلك، Python لا يأتي مع وظيفة مدمجة لعكس السلاسل، ولكنها طرق يمكنك استخدامها.

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

طريقة 1: Reverse سلسلة في Python باستخدام حلقة For

الطريقة الأولى لعكس السلاسل هي استخدام حلقة for كما في مقتطف الكود أدناه:

Python Code:

# function for reversing a string
def reverse_string(string):
    # an empty string for storing reversed string
    reversed_string = ""
    # looping through the string
    for char in string:
        # reversing the string
        reversed_string = char + reversed_string
    # returning a reversed string
    return reversed_string

# the string to reverse
string = "Guru99"
# printing a message
print(f"String Reversal using a for loop")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse_string(string)}")

الإخراج:

String Reversal using a for loop
Original String: Guru99
Reversed String: 99uruG

Code التفسير:

  • في مقتطف التعليمات البرمجية هذا، يمكننا استخدام عكس_سلسلة () وظيفة لعكس السلسلة مع أخذ معين سلسلة كحجة.
  • يمكننا داخلها إنشاء سلسلة نصية فارغة لتخزين السلسلة المعكوسة، ثم ننظرping عبر الخيط.
  • يتم عكس الأحرف وتعيينها إلى Reverse_string المتغير.
  • وأخيرًا، يقوم السطر الأخير في الدالة بإرجاع السلسلة المعكوسة.
  • لعرض الإخراج، يتم إجراء مكالمة وظيفية داخل طباعة() تعمل بمساعدة سلسلة f.

طريقة 2: Reverse سلسلة في Python باستخدام حلقة while

باستخدام أثناء التكرار Python ستكون أيضًا طريقة أخرى لعكس السلسلة. دعونا نفهم مقتطف الشفرة أدناه:

Python Code:

# declaring a string to reverse
string = "Python"
# initializing an empty string to store the reversed string
reversed_string = ""
# printing a message
print(f"String Reversal using a while loop")
# printing the original string
print(f"Original String: {string}")
# find length of a string and store in count variable
count = len(string)
# a while loop for looping through the string characters
while count > 0:
    # save the value of str[count-1] in reversed_string
    reversed_string += string[count - 1]
    # decrementing index
    count = count - 1
print(f"Reversed String: {reversed_string}")

الإخراج:

String Reversal using a while loop
Original String: Python
Reversed String: nohtyP

Code التفسير:

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

مرحاضping يعمل ، ولكن Pythonيُعد عامل التقطيع الخاص بـ 's أكثر اختصارًا بكثير.

طريقة 3: Python Reverse سلسلة نصية باستخدام أداة التقطيع Operaتور

طريقة أخرى لعكس السلسلة هي استخدام عامل التقطيع، وللتعرف على ذلك، راجع الكود أدناه:

Python Code:

# function to reverse a string
def reverse(string):
    # the  slice syntax
    reversed_string = string[::-1]
    return reversed_string

# declaring a string to reverse
string = "Let's guru99"
# printing a message
print(f"String Reversal using Slicer Operator")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

الإخراج:

String Reversal using Slicer Operator
Original String: Let's guru99
Reversed String: 99urug s'teL

Code التفسير:

  • لخلق عكس () الوظيفة التي تأخذ سلسلة كحجة، داخله
  • في هذا المثال ، لدينا ملف سلسلة [::-1] عامل شريحة لعكس سلسلة
  • ثم يتم تعيين السلسلة المعكوسة لمتغير جديد يسمى Reverse_string
  • وأخيراً، يتم إرجاع السلسلة المعكوسة الجديدة

طريقة 4: Revإدخال سلسلة في Python استخدام الدالة reversed()

يمكننا أيضًا عكس سلسلة باستخدام a عكس () Python الدالة، فإن الكود سيبدو كما يلي:

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

# function to reverse a string
def reverse(string):
    # reversed() function inside the join() function
    string = "".join(reversed(string))
    # returning the reversed string
    return string

# declaring a string to reverse
string = "guru99"
# printing a message
print(f"String Reversal using reversed() function")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

الإخراج:

String Reversal using reversed() function
Original String: guru99
Reversed String: 99urug

Code التفسير:

  • في هذا الكود لدينا عكس () الدالة التي تكون حجتها a سلسلة.
  • بداخله، قمنا بتهيئة سلسلة فارغة.
  • نحن نسلسلها مع إخراج عكس (سلسلة) يستخدم ال انضم() وظيفة.
  • خارج عكس () دالة، لقد أعلنا عن سلسلة لعكسها، ثم نقوم بطباعة السلسلة الأصلية والسلسلة المعكوسة.

طريقة 5: Python Reverse سلسلة نصية باستخدام التكرار

تعني كلمة Recursion دالة محددة تستدعي نفسها. ويقال عن الدالة التكرارية أنها متكررة عندما تستدعي نفسها. لفهمها بشكل أفضل، انظر إلى مثال التعليمات البرمجية التالي:

Python Code:

# a function to reverse a string
def reverse(string):
    # Checking the length of string
    if len(string) == 0:
        return string
    # reversing string if len(string) != 0
    else:
        # recursively calling the reverse() function
        return reverse(string[1:]) + string[0]

# declaring a string to reverse
string = "I love guru99"
# printing a message
print(f"String Reversal using Recursion")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

الإخراج:

String Reversal using Recursion
Original String: I love guru99
Reversed String: 99urug evol I

Code التفسير:

  • في الكود أعلاه، أعلنا أ يعكس () الوظيفة التي تأخذ سلسلة كوسيطة، نص الدالة هو لو غير ذلك بيان.
  • استخدم if تتحقق العبارة مما إذا كان طول السلسلة يعادل 0 وترجع السلسلة، في حين أن آخر بيان يدعو عكس () تعمل بشكل متكرر، وتقطع الفهرس الأخير للسلسلة، وتضيفه إلى البداية.

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

يُعدّ تقطيع [::-1] هو الأسرع. تُظهر الاختبارات المعيارية أنه أسرع بحوالي 7 مرات من عكس القائمة وأسرع بـ 83 مرة من الاستدعاء الذاتي.

نعم. يقوم الذكاء الاصطناعي بتحويل عكس حلقة for إلى تقطيع ويشرح عكس () مقابل [::-1].

تحذر أدوات الذكاء الاصطناعي من أن عملية الجمع += في حلقة تكرارية هي O(n^2) وتوصي باستخدام الربط أو التقطيع.

مُكرِّر كسول، وليس سلسلة نصية جديدة. استخدم ”.join(reversed(s)) لإنشاء السلسلة النصية المعكوسة عند الحاجة.

نادرًا. التكرار أنيق ولكنه بطيء ويؤدي إلى أخطاء. Pythonالحد الافتراضي للتكرار هو 1000 إطار على السلاسل الطويلة. استخدم التقطيع في التعليمات البرمجية الحقيقية.

لا. السلاسل النصية غير قابلة للتغيير في Python; يُعيد عكس السلسلة سلسلة نصية جديدة. ويحتفظ المتغير الأصلي بنفس القيمة ما لم يُعاد تعيينها.

استخدم دالة split، ثم اعكس ترتيب القائمة، ثم ادمجها: ' '.join(sentence.split()[::-1]). هذا يعكس ترتيب الكلمات مع الحفاظ على التهجئة.

ليس دائمًا. قد تنقسم الرموز التعبيرية المركبة والأحرف المركبة. لعكس الكتابة بشكل آمن، استخدم التعبير النمطي findall(r'\X', s) قبل العكس.

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