Python Map, Filter, Reduce Функц
Python нь програмчлахад чиглэсэн функциональ боломжийг олгодог хэд хэдэн функцээр хангадаг.
Эдгээр функцууд нь Python дээр кодыг хялбархан бичих боломжтой болгодог.
функциональ програмчлал гэдэг нь зөвхөн илэрхийлэлтэй холбоотой илэрхийлэлд чиглэсэн програмчлал юм.
Python-н илэрхийлэлд чиглэсэн функцууд:
- map (aFunction, aSequence)
- filter (aFunction, aSequence)
- reduce (aFunction, aSequence)
- lambda
- list comprehension
Map()
жагсаалт болон бусад дэс дарааллаар хийдэг нийтлэг зүйлүүдийн нэг бол тухайн зүйлд үйлдлийг хэрэгжүүлж үр дүнг цуглуулах байдаг.
Жишээлбэл жагсаалтад байгаа бүх items-г for loop
ашиглан хялбар шинэчилж болно.
Жишээ нь
items = [1, 2, 3, 4, 5]
kb = []
for x in items:
kb.append(x**2)
print (kb)
Үр дүн
C:\Users\Pc Name>strings.py
[1, 4, 9, 16, 25]
Map (aFunction, aSequence) функц нь давтагдах объектын item бүрт нэвтрүүлсэн функцийг хэрэгжүүлж, бүх үр дүнг агуулсан жагсаалтыг буцаана.
Жишээ нь
items = [1, 2, 3, 4, 5]
def kb(x): return x ** 2
z = list(map(kb, items))
print (z)
Үр дүн
C:\Users\Pc Name>strings.py
[1, 4, 9, 16, 25]
Дээрх код нь бидний тодорхойлсон функцийн дагуу items
-ын элемент тус бүрийг шинэчилж map()
функцийн тусламжтай list
-д цуглууллаа.
Ламбда функц нь map() функцтэй хоршиж ажиллахад илүү тохиромтой байдаг. Дээрх жишээг авч үзье.
Жишээ нь
items = [1, 2, 3, 4, 5]
z = list(map((lambda x: x ** 2), items))
print (z)
Үр дүн
C:\Users\Pc Name>strings.py
[1, 4, 9, 16, 25]
Filter ба Reduce
filter()
функцийг нэрээс нь хархад дарааллын элемент бүрийн үнэн утгыг буцаах нь харагдаж байна.reduce()
функц нь элементүүдийг нэгтгэх замаар жагсаалтыг нэг утга болгон бууруулдаг.
Эдгээр функцүүдийг дараалал болон бусад давталтад ашигладаг.
range, filter болон list-г ашигласан жишээ авч үзье.
Жишээ нь
z = list = (range(-7,7))
print (z)
Үр дүн
C:\Users\Pc Name>strings.py
[-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6 ,7]
filter()
функцийг ашиглан дээрх жишээнээс 0-ээс бага тоог буцааж үзье.
Жишээ нь
z = list (filter((lambda x: x < 0), range(-7, 7)))
print (z)
Үр дүн
C:\Users\Pc Name>strings.py
[-7, -6, -5, -4, -3, -2, -1]
for
давталт ашиглан дээрх жишээг хийж үзье.
Жишээ нь
urdun = []
for x in range(-7, 7):
if x < 0:
urdun.append(x)
print (urdun)
Үр дүн
C:\Users\Pc Name>strings.py
[-7, -6, -5, -4, -3, -2, -1]
reduce()
reduce()
функц нь python 3.0 хувилбар дээр гарч ирсэн функц юм. Энэ функц нь давталтыг хүлээн авдаг боловч нэг л үр дүнг буцаадаг өөрөөр хэлбэр давталтыг тухайн зорилгод ашигладаг гэж ойлгож болно.
Жишээ нь
from functools import reduce
z = reduce ( (lambda x, y: x * y), [1, 2, 3, 4] )
print (z)
Үр дүн
C:\Users\Pc Name>strings.py
24
Жагсаалтын бүх элементийн нийлбэрийг олж буцаая
Жишээ нь
from functools import reduce
z = reduce ( (lambda x, y: x + y), [1, 2, 3, 4] )
print (z)
Үр дүн
C:\Users\Pc Name>strings.py
10
Дээрх жишээнд for
давталт ашиглаж үзье.
Жишээ нь
z = [1, 2, 3, 4]
urdun = z[0]
for x in z[1:]:
urdun = urdun * x
print (urdun)
Үр дүн
C:\Users\Pc Name>strings.py
24
Python Map, Filter, Reduce Функц