تعيين الوظائف في Python وتصفيتها وتقليلها: كل ما تحتاج إلى معرفته



تعرف على وظائف map () و filter () و تقليل () في Python. تعرف أيضًا على كيفية استخدامها مع وظائف lambda والوظائف المحددة بواسطة المستخدم جنبًا إلى جنب مع بعضها البعض.

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

قبل المضي قدمًا ، دعنا نلقي نظرة على المحتويات:





لذلك دعونا نبدأ. :)

ما هي وظائف map () و filter () و تقليل () في Python؟

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



وظيفة الخريطة ():

الوظيفة map () هي نوع من الترتيب الأعلى. كما ذكرنا سابقًا ، تأخذ هذه الوظيفة وظيفة أخرى كمعامل جنبًا إلى جنب مع سلسلة من العناصر التكرارية وتعيد مخرجات بعد تطبيق الوظيفة على كل موجود متكرر في التسلسل. تركيبها كما يلي:

بناء الجملة:

خريطة (وظيفة ، متكررة)



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

استخدام وظائف Lambda المعرفة من قبل المستخدم في:

وظائف محددة من قبل المستخدم داخل الخريطة ():

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

مثال:

def newfunc (a): إرجاع a * a x = map (newfunc، (1،2،3،4)) #x هو كائن الخريطة print (x) print (set (x))

انتاج:

{16 ، 1 ، 4 ، 9}

كما ترى ، x هو كائن خريطة. يعرض إخراج الجزء التالي وظيفة الخريطة مع الأخذ newfunc () كمعامل لها ثم يقوم بتطبيق a * a على جميع العناصر التكرارية. نتيجة لذلك ، يتم ضرب قيم جميع العناصر التكرارية في ذاتها وإرجاعها.

ملحوظة: الإخراج ليس بترتيب قيم العناصر التكرارية لأنني استخدمت الدالة set (). يمكنك أيضًا استخدام الدالتين list () أو tuple () على سبيل المثال:

مثال:

def newfunc (a): إرجاع a * a x = map (newfunc، (1،2،3،4)) #x هو كائن الخريطة print (x) print (list (x))

انتاج:

كيفية اختبار قاعدة البيانات

[1 ، 4 ، 9 ، 16]

يمكنك تمرير أكثر من قائمة واحدة من المعلمات أيضًا. فمثلا:

مثال:

def func (a، b): إرجاع a + b a = map (func، [2، 4، 5]، [1،2،3]) print (a) print (tuple (a))

انتاج:

(3 ، 6 ، 8)

الآن دعونا نرى كيف يمكنك استخدام وظائف لامدا ضمن وظيفة الخريطة ().

وظائف Lambda داخل الخريطة ():

وظائف Lambda هي وظائف لها أي اسم. غالبًا ما يتم توفير هذه الوظائف كمعلمات لوظائف أخرى. الآن دعونا نحاول تضمين وظائف lambda داخل وظيفة map (). تأمل المثال التالي:

مثال:

tup = (5، 7، 22، 97، 54، 62، 77، 23، 73، 61) newtuple = tuple (map (lambda x: x + 3، tup)) print (newtuple)

انتاج:

(8 ، 10 ، 25 ، 100 ، 57 ، 65 ، 80 ، 26 ، 76 ، 64)

الناتج أعلاه هو نتيجة لتطبيق تعبير lambda (x + 3) على كل عنصر موجود في المجموعة.

وظيفة المرشح ():

يتم استخدام وظيفة filter () لإنشاء قائمة مخرجات تتكون من القيم التي ترجع الدالة true. تركيبها كما يلي:

بناء الجملة:

مرشح (وظيفة ، متكررة)

تمامًا مثل map () ، يمكن استخدام هذه الوظيفة أيضًا يمكن أن تأخذ وظائف محددة من قبل المستخدم بالإضافة إلى وظائف lambda كمعامل.

مثال:

def func (x): if x> = 3: return x y = filter (func، (1،2،3،4)) print (y) print (list (y))

انتاج:

[3. 4]

كما ترى ، y هو كائن المرشح والقائمة عبارة عن قائمة بالقيم الصحيحة للشرط (x> = 3).

استخدام لامدا داخل الفلتر ():


تحدد وظيفة lambda المستخدمة كمعامل بالفعل الشرط الذي سيتم التحقق منه. فمثلا:

مثال:

y = مرشح (lambda x: (x> = 3)، (1،2،3،4)) طباعة (قائمة (y))

انتاج: [3. 4]

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

وظيفة التقليل ():

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

تقليل الخريطة تقليل مرشح edureka

تكون صيغة هذه الوظيفة كما يلي:

بناء الجملة:

تقليل (وظيفة ، متكررة)

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

مثال:

من functools import reduction (lambda a، b: a + b، [23،21،45،98])

انتاج: 187

في المثال أعلاه ، تضيف وظيفة التصغير كل حاضر متكرر في القائمة على التوالي وتعيد ناتجًا واحدًا.

يمكن استخدام وظائف الخريطة () والتصفية () وتقليل () في بايثون مع بعضها البعض.

باستخدام الخريطة () ، قم بتصفية () وتقليل () وظائف مع بعضها البعض:

عند القيام بذلك ، يتم حل الوظائف الداخلية أولاً ثم تعمل الوظائف الخارجية على إخراج الوظائف الداخلية.

دعنا نحاول أولاً تمرير وظيفة filter () كمعامل لوظيفة map ().

باستخدام عامل التصفية () داخل الخريطة ():

يتحقق الكود الوارد أدناه أولاً من أن الشرط (x> = 3) ليكون صحيحًا بالنسبة إلى العناصر التكرارية. بعد ذلك ، يتم تعيين الإخراج باستخدام وظيفة map ().

مثال:

c = الخريطة (lambda x: x + x، filter (lambda x: (x> = 3)، (1،2،3،4))) print (list (c))

انتاج: [6 ، 8]

إذا قمت بتصفية الأعداد الصحيحة الأكبر من أو تساوي 3 من المجموعة المعطاة ، ستحصل على [3،4] كنتيجة لذلك. ثم إذا قمت بتعيين هذا باستخدام شرط (x + x) ، فستحصل على [6،8] ، وهو الناتج.

باستخدام الخريطة () ضمن عامل التصفية ():


عند استخدام وظيفة map () ضمن وظيفة filter () ، يتم تشغيل العناصر التكرارية أولاً بواسطة وظيفة الخريطة ثم يتم تطبيق شرط المرشح () عليها.

مثال:

c = filter (lambda x: (x> = 3)، map (lambda x: x + x، (1،2،3،4))) #lambda x: (x> = 3) print (list (c) )

انتاج: [4 ، 6 ، 8]

باستخدام الخريطة () والتصفية () ضمن تقليل ():

يتم تقليل إخراج الوظائف الداخلية وفقًا للحالة المزودة لوظيفة التخفيض ().

مثال:

d = تقليل (lambda x ، y: x + y ، الخريطة (lambda x: x + x ، مرشح (lambda x: (x> = 3) ، (1،2،3،4))) طباعة (d)

انتاج: 14

الناتج هو نتيجة [6،8] والذي هو نتيجة وظائف الخريطة الداخلية () والمرشح ().

بهذا نكون قد وصلنا إلى نهاية هذه المقالة على map () ، مرشح () وتقليل الوظائف في Python. أتمنى أن تكون قد فهمت كل شيء بوضوح. تأكد من ممارسة أكبر قدر ممكن وإعادة تجربتك.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'الخريطة () ، والتصفية () وتقليل () الوظائف في Python' وسنعاود الاتصال بك في أقرب وقت ممكن.

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