الانتقال إلى المحتوى الرئيسي

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

  • الدكتورة آيات الجاعوني
  • المدونة

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

طريقة واحدة هي استخدام الطريقة.تجد (). يقوم بإرجاع فهرس التكرار الأول لحرف في سلسلة. إذا لم يتم العثور على الرمز ، ترجع الطريقة -1. للعثور على التكرار الثاني ، يمكنك تطبيق هذه الطريقة مرتين. على سبيل المثال ، للعثور على التكرار الثاني للحرف " أ "في السلسلة" بايثون " ، يمكنك كتابة الكود التالي:

إذا حدث أولا != -1:

  1. ثانيا-حدوث = سلسلة.ابحث عن ("أ" ، الحدوث الأول + 1)
  2. طباعة (ثانية) # الإخراج : 3
  3. ومع ذلك ، فإن هذه الطريقة ليست الأكثر موثوقية ، خاصة إذا حدث الحرف المطلوب عدة مرات في السلسلة. في هذه الحالة ، فمن الأفضل استخدام .طريقة الانقسام ().
  4. كيفية العثور على التكرار الثاني لحرف في سلسلة في بايثون
  5. 1. باستخدام طريقة الفهرس ()
  6. 2. باستخدام طريقة البحث ()
  7. 3. باستخدام طريقة الانقسام( )
  8. 4. استخدام التعبيرات العادية
  9. المشكلة وحلها
  10. باستخدام المدمج في وظيفة
  11. طريقة بحث بدون استخدام وظائف مدمجة

الحل عبر التعبيرات العادية

أمثلة الاستخدام

سؤال وجواب

هل من الممكن العثور على جميع تواجدات حرف في سلسلة باستخدام ' بحث ()` طريقة?

كيفية العثور على التكرار الثاني لحرف في سلسلة في بايثون

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

1. باستخدام الفهرس()

الطريقة

، الفهرس()

ترجع الطريقة فهرس التكرار الأول لحرف في سلسلة. يمكننا استخدام هذه الطريقة مرتين لإيجاد التكرار الثاني للحرف.

مثال:

"'بايثون

سلسلة = " مرحبا ، العالم!"

شار = "س"

أولا_حدوث = سلسلة.الفهرس (شار)

ثانيا-حدوث = سلسلة.فهرس (شار ، أول_حدوث + 1 )

طباعة ("التكرار الثاني للحرف" س "في السلسلة:" ، التكرار الثاني)

"`

التكرار الثاني للحرف ' س ' في السلسلة: 8

"`

2. باستخدام طريقة البحث ()

البحث()

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

مثال:

"'بايثون

سلسلة = " مرحبا ، العالم!"

شار = "س"

أولا_حدوث = سلسلة.البحث(شار)

ثانيا-حدوث = سلسلة.العثور على (شار ، أولا_حدوث + 1 )

طباعة ("التكرار الثاني للحرف" س "في السلسلة:" ، التكرار الثاني)

"`

التكرار الثاني للحرف ' س ' في السلسلة: 8

"`

3. باستخدام الانقسام()

الطريقة

، الانقسام()

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

مثال:

"'بايثون

سلسلة = " مرحبا ، العالم!"

شار = "س"

سلسلة مقسمة = سلسلة.انقسام (شار)

التكرار الثاني = لين(سبليت سترينغ [0]) + لين (شار) + لين(سبليت سترينغ [1])

طباعة ("التكرار الثاني للحرف" س "في السلسلة:" ، التكرار الثاني)

"`

4. استخدام التعبيرات العادية

إذا أردنا العثور على جميع تكرارات حرف في سلسلة ، فيمكننا استخدام

وحدة إعادة

و وظيفتها

فيندال()

. ثم يمكننا تحديد التكرار الثاني للحرف من قائمة النتائج.

مثال:

"'بايثون

استيراد إعادة

سلسلة = " مرحبا ، العالم!"

شار = "س"

الحوادث = إعادة.فيندال (شار ، سلسلة)

ثانيا-حدوث = سلسلة.مؤشر (شار ، سلسلة.مؤشر (شار) + 1)

طباعة ("التكرار الثاني للحرف" س "في السلسلة:" ، التكرار الثاني)

"`

خاتمة:

الحل لهذه المشكلة هو استخدام طريقتين سلسلة:

البحث()

. الطريقة

البحث()

يبحث عن التكرار الأول لحرف في سلسلة ويعيد فهرسه إذا تم العثور على الحرف ، أو -1 إذا لم يتم العثور على الحرف.

من أجل العثور على التكرار الثاني للشخصية ، يمكنك استخدام الطريقة

أولا_حدوث = سلسلة.البحث(شار)

سلسلة العودة.العثور على (شار ، أولا_حدوث + 1 )

في هذه الوظيفة ، يتم العثور على فهرس التكرار الأول للحرف لأول مرة باستخدام الطريقة

البحث()

. ثم استدعاء الطريقة الثانية

البحث()

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

Ниже приведен пример использования функции:

sentence = "Пример предложения с двумя пробелами"

second_space_index = find_second_occurrence(sentence, " ")

if second_space_index != -1:

first_part = sentence[:second_space_index]

print("Второго пробела нет в предложении.")

في هذا المثال ، تم العثور على التكرارين الأول والثاني لحرف المسافة في الجملة ، ثم يتم تقسيم الجملة إلى جزأين بناء على المساحة الثانية.

وبالتالي ، فإن استخدام الأساليب

البحث()

و

البحث()

اجعل من السهل والفعال العثور على التكرار الثاني لحرف في سلسلة في بايثون.

باستخدام المدمج في وظيفة

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

هنا مثال بسيط على استخدام وظيفة البحث () للعثور على التكرار الثاني للحرف' س ' في سلسلة:

س = " مرحبا ، العالم!"

العثور على ('س')

العثور على ('س' ، أول _ مؤشر + 1 )

طباعة ("التكرار الثاني للحرف" س "في السلسلة:" ، الفهرس الثاني)

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

إذا سلسلة [أنا] = = شار:

عودة أنا

يحدد هذا الرمز دالة العثور على الثانية ، والتي تأخذ وسيطتين: سلسلة (السلسلة التي يتم فيها العثور على التكرار الثاني للحرف) و شار (الحرف الذي سيتم العثور عليه).

باستخدام ل حلقة والمشغلين الشرطية ، ونحن ننظر إلى كل حرف في السلسلة. إذا وجدنا التكرار الثاني للحرف ، فإننا نعيد موضعه في السلسلة.

  1. مثال على استخدام الوظيفة:

سلسلة = " مرحبا ، العالم!"

شار = "س"

طباعة (العثور على_الثانية_حدوث (سلسلة ، شار))

الخلاصة: 8

في هذا المثال ، نحن نبحث عن التكرار الثاني للحرف" س "في السلسلة" مرحبا ، العالم!". تقوم دالة العثور على الثانية بإرجاع موضع حرف في سلسلة ، وفي هذه الحالة يكون 8.

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

الحل عبر التعبيرات العادية

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

  1. لحل المشكلة باستخدام التعبيرات العادية ، تحتاج إلى:

    استيراد وحدة إعادة:استيراد إعادةاكتب تعبيرا عاديا للبحث عن التكرار الثاني لحرف في سلسلة:
    نمط = ص ' رمز.{1} رمز'في هذا المثال ، النمط هو تعبير عادي للبحث عن التكرار الثاني لحرف في سلسلة. الرمز'.'يشير إلى أي حرف ، و {1} يعني عدد التكرارات يساوي 1.استخدام إعادة.بحث () وظيفة للبحث عن حدوث الثاني من الحرف:
    النتيجة = إعادة.بحث (نمط ، سلسلة)إذا كانت النتيجة:ثانيا-الحدوث = النتيجة.بداية()
    طباعة ("التكرار الثاني الموجود في الفهرس" ، التكرار الثاني)آخر:طباعة ("لم يتم العثور على التكرار الثاني")
  2. إعادة.بحث () وظيفة البحث عن تطابق النمط الأول في سلسلة. إذا تم العثور على تطابق ، فإن متغير النتيجة تخزين كائن مباراة مع معلومات حول المباراة. تقوم طريقة البداية() لكائن المطابقة بإرجاع فهرس حرف المطابقة الأول في السلسلة.

    إذا تم العثور على التكرار الثاني للرمز ، فسيتم عرض الرسالة "التكرار الثاني الموجود في الفهرس" وفهرس التكرار الثاني للرمز. إذا لم يكن هناك تكرار ثان للحرف ، فسيتم عرض الرسالة "لم يتم العثور على التكرار الثاني".يوضح المثال أعلاه طريقة سهلة للعثور على التكرار الثاني لحرف في سلسلة باستخدام التعبيرات العادية.أمثلة الاستخدام
    لنلق نظرة على بعض الأمثلة على استخدام الوظيفة للعثور على التكرار الثاني لحرف في سلسلة:مثال 1:خط الإدخال
    الرمز المطلوبالنتيجة المتوقعة"مرحبا بالعالم"
    "س"7"برمجة بايثون"
  3. "م"

    15"مثال""ه"
    2المثال 2:سلسلة الإدخال
    الرمز المطلوبالنتيجة المتوقعة"البرمجة"
    "ز"7"أبكديفغ"

"د"

4

"مثال"

"ف"

-1

المثال 3:

خط الإدخال

الرمز المطلوب