الدالة bytes.rindex()
في بايثون
تشبه الدالة bytes.rfind()
في أنّها تحدّد أعلى قيمة للفهرس تجد فيه التسلسل الفرعي ضمن التسلسل الأصلي، وتختلف عنها في أنّها تطلق الخطأ ValueError
إن لم تعثر على التسلسل الفرعي.
البنية العامة
b.rindex()
المعاملات
sub
التسلسل الفرعي المراد معرفة موقعه. يمكن أن يكون هذا المعامل أي كائن شبيه بالبايتات (bytes-like object) أو عددًا صحيحًا يبدأ من 0
وينتهي بالعدد 255
.
start
الموقع الذي تبدأ منه الدالة عملية البحث ضمن التسلسل الأصلي.
end
الموقع الذي تنهي فيه الدالة عملية البحث ضمن التسلسل الأصلي.
يسلك هذان المعاملان الاختياريان نفس السلوك المتّبع في عملية اقتطاع السلاسل النصية slicing.
القيمة المعادة
تعيد الدالة أعلى قيمة للفهرس في التسلسل الأصلي حيث تجد فيه التسلسل الفرعي، بحيث يكون التسلسل الفرعي ضمن النطاق s[start:end]
.
تطلق الدالة الخطأ ValueError
إن لم تعثر على التسلسل الفرعي.
أمثلة
يبين المثال التالي النتائج المعادة من استخدام الدالة:
>>> byte = b'Python, Python, Python'
>>> byte.rindex(b'Py')
16
>>> byte.rindex(b'Py', 0, 10)
8
>>> byte.rindex(b'C++')
Traceback (most recent call last):
File "<input>", line 1, in <module>
byte.rindex(b'C++')
ValueError: subsection not found
>>> byte.rindex(44)
14
>>> byte.rindex(12)
Traceback (most recent call last):
File "<input>", line 1, in <module>
byte.rindex(12)
ValueError: subsection not found