الفرق بين المراجعتين لصفحة: «Python/bisect/bisect right»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>bisect.bisect_right()</code> في بايثون}}</noinclude> تعيد موقع الإدراج الذي يأتي بعد (...' |
لا ملخص تعديل |
||
سطر 15: | سطر 15: | ||
== القيمة المعادة == | == القيمة المعادة == | ||
يقسم موقع الإدراج المعاد i المصفوفة a إلى نصفين، بحيث يكون التعبير all(val <= x forval in a[lo:i]) للجانب الأيسر والتعبير all(val > x for val in a[i:hi]). | يقسم موقع الإدراج المعاد <code>i</code> المصفوفة <code>a</code> إلى نصفين، بحيث يكون التعبير <code>all(val <= x forval in a[lo:i])</code> للجانب الأيسر والتعبير <code>all(val > x for val in a[i:hi])</code>. | ||
هذه الدالة مشابهة للدالة bisect_left()، ولكنّها تعيد موقع الإدراج الذي يأتي بعد (إلى الجانب الأيمن) العناصر المماثلة للعنصر المضاف x في المصفوفة a. | هذه الدالة مشابهة للدالة <code>[[Python/bisect/bisect left|bisect_left()]]</code>، ولكنّها تعيد موقع الإدراج الذي يأتي بعد (إلى الجانب الأيمن) العناصر المماثلة للعنصر المضاف <code>x</code> في المصفوفة <code>a</code>. | ||
== أمثلة == | == أمثلة == | ||
سطر 24: | سطر 24: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
>>> | >>> from bisect import bisect_right | ||
>>> def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'): | |||
>>> | ... i = bisect_right(breakpoints, score) | ||
... return grades[i] | |||
... | |||
>>> [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]] | |||
['F', 'A', 'C', 'C', 'B', 'A', 'A'] | |||
</syntaxhighlight> | </syntaxhighlight> | ||
المراجعة الحالية بتاريخ 20:06، 5 أغسطس 2018
تعيد موقع الإدراج الذي يأتي بعد (إلى الجانب الأيمن) العناصر المماثلة للعنصر المضاف في المصفوفة المعطاة.
البنية العامة
bisect.bisect_right(a, x, lo=0, hi=len(a))
المعاملات
يمكن استخدام المعاملين lo
و hi
لتحديد جزء من القائمة، ولكن السلوك الافتراضي لهذه الدالة هو التعامل مع القائمة بأكملها. إن كان العنصر x
موجودًا من قبل في القائمة a
، فإنّ موقع الإدراج سيكون بعد (إلى يمين) العناصر الموجودة أصلًا. يمكن استخدام القيمة المعادة كأول معامل في التابع list.insert()
على افتراض أنّ القائمة a
مفروزة أصلًا.
القيمة المعادة
يقسم موقع الإدراج المعاد i
المصفوفة a
إلى نصفين، بحيث يكون التعبير all(val <= x forval in a[lo:i])
للجانب الأيسر والتعبير all(val > x for val in a[i:hi])
.
هذه الدالة مشابهة للدالة bisect_left()
، ولكنّها تعيد موقع الإدراج الذي يأتي بعد (إلى الجانب الأيمن) العناصر المماثلة للعنصر المضاف x
في المصفوفة a
.
أمثلة
يبين المثال التالي آلية عمل التابع:
>>> from bisect import bisect_right
>>> def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
... i = bisect_right(breakpoints, score)
... return grades[i]
...
>>> [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]]
['F', 'A', 'C', 'C', 'B', 'A', 'A']
انظر أيضًا
- الدالة
bisect_left
(): تحدّد الدالة موقع إدراج العنصر المحدد في المصفوفة المعطاة. - الدالة
bisect
(): تعيد موقع الإدراج الذي يأتي بعد (إلى الجانب الأيمن) العناصر المماثلة للعنصر المضاف في المصفوفة المعطاة.