الفرق بين المراجعتين ل"Python/functools/cmp to key"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(إضافة الصّفحة)
 
 
(مراجعتان متوسطتان بواسطة نفس المستخدم غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>itertools.cmp_to_key()‎</code> في بايثون}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:الدالة <code>functools.tools.cmp_to_key()‎</code> في بايثون}}</noinclude>
تُحوّل الدّالة <code>itertools.cmp_to_key()‎</code> دالّة مُقارنة (comparison function) إلى دالّة مفتاح (key function).
+
تُحوّل الدّالة <code>functools.cmp_to_key()‎</code> دالّة مُقارنة (comparison function) إلى دالّة مفتاح (key function).
  
تُستعمل مع الأدوات التي تقبل دوالّ مفتاح مثل sorted()‎، وmin()‎، وmax()‎، وheapq.nlargest()‎، وheapq.nsmallest()‎، وitertools.groupby()‎.
+
تُستعمل مع الأدوات التي تقبل دوالّ مفتاح مثل <code>[[Python/sorted|sorted()]]</code>‎، و<code>[[Python/min|min()‎]]</code>، و<code>[[Python/max|max()]]</code>‎، و<code>[[Python/heapq/nlargest|heapq.nlargest()‎]]</code>، و<code>[[Python/heapq/nsmallest|heapq.nsmallest()]]</code>‎، و<code>[[Python/itertools/groupby|itertools.groupby()]]</code>‎.
  
 
تُستعمل هذه الدّالة أساسًا كأداة لنقل البرامج من Python 2 التي دعمت استعمال دوال المُقارنة.
 
تُستعمل هذه الدّالة أساسًا كأداة لنقل البرامج من Python 2 التي دعمت استعمال دوال المُقارنة.
سطر 23: سطر 23:
 
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:
 
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
sorted(iterable, key=functools.cmp_to_key(locale.strcoll)) # ترتيب يأخذ الموقع بعين الاعتبار
+
>>> sorted('AKDE', key=functools.cmp_to_key(locale.strcoll)) # ترتيب يأخذ الموقع بعين الاعتبار
 +
['A', 'D', 'E', 'K']
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الدالة [[Python/min|min()‎ ]]: الحصول على أصغر قيمة من عدّة قيّم.
+
* الدالة [[Python/min|<code>min()</code>‎]] : الحصول على أصغر قيمة من عدّة قيّم.
* الدالة [[Python/max| max()‎ ]]: الحصول على أكبر قيمة من عدّة قيّم.
+
* الدالة [[Python/max| <code>max()</code>‎]] : الحصول على أكبر قيمة من عدّة قيّم.
* الدّالة [[Python/sorted|الدالة sorted()‎ في بايثون]]: ترتيب القيم.
+
* الدّالة [[Python/sorted|<code>sorted()</code>‎]] : ترتيب القيم.
* الدالة [[Python/itertools/groupby|itertools.groupby()‎]]: تجميع القيّم حسب مفتاح مُعيّن.
+
* الدالة [[Python/itertools/groupby|<code>itertools.groupby()‎</code>]]: تجميع القيّم حسب مفتاح مُعيّن.
* الدالة [[Python/heapq/nlargest|Python.heapq.nlargest]].
+
* الدالة <code>[[Python/heapq/nlargest|heapq.nlargest]]</code>.
* الدالة [[Python/heapq/nsmallest|Python.heapq.nsmallest]].
+
* الدالة [[Python/heapq/nsmallest|<code>heapq.nsmallest</code>]].
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 16:05، 19 يونيو 2018

تُحوّل الدّالة functools.cmp_to_key()‎ دالّة مُقارنة (comparison function) إلى دالّة مفتاح (key function).

تُستعمل مع الأدوات التي تقبل دوالّ مفتاح مثل sorted()‎، وmin()‎، وmax()‎، وheapq.nlargest()‎، وheapq.nsmallest()‎، وitertools.groupby()‎.

تُستعمل هذه الدّالة أساسًا كأداة لنقل البرامج من Python 2 التي دعمت استعمال دوال المُقارنة.

دالّة المُقارنة هي كلّ كائن قابل للاستدعاء يستقبل مُعاملين ويُقارن بينهما، ويُعيد عددًا سالبًا في حالة أصغر من، الصّفر في حالة التّساوي، وعددًا موجبًا في حالة أكبر من. ودالّة مفتاح هي كائن قابل للاستدعاء يستقبل مُعاملًا واحدًا ويُعيد قيمةً أخرى لاستعمالها كمفتاح للتّرتيب.

البنية العامة

functools.cmp_to_key(func)

المعاملات

func

دالّة المُقارنة المرغوب تحويلها لدالّة مفتاح.

القيمة المعادة

دالّة مفتاح.

أمثلة

المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:

>>> sorted('AKDE', key=functools.cmp_to_key(locale.strcoll)) # ترتيب يأخذ الموقع بعين الاعتبار
['A', 'D', 'E', 'K']

انظر أيضًا

مصادر