Python: map() funktsiyasi

Python: map() funktsiyasi

Python’dagi map() funksiyasi ko’rsatilgan takrorlanadigan va qaytarilgan xarita ob’ektining barcha elementlariga ma’lum bir funktsiyani qo’llash uchun ishlatiladi. Python-dagi xarita ob’ekti iteratordir (takrorlanuvchi elementlar), shuning uchun biz uning elementlarini takrorlashimiz mumkin. Shuningdek, biz xarita ob’ektini standart funksiyalardan foydalangan holda ro’yxat, kortej va boshqalar kabi ketma-ketlik ob’ektlariga aylantirishimiz mumkin.

funktsiya sintaksisi:

map(function , iterable)

Biz map() funksiyasiga bir nechta takrorlanadigan qiymatlarni berishimiz mumkin, map() uchun ko’rsatilgan funktsiya ushbu takrorlanuvchi elementlarga parallel ravishda qo’llaniladi. Bir nechta takrorlanadigan argumentlar bilan map() iteratori eng oxirgi iteratsiya tugashi bilan to’xtaydi.

iterator — takrorlanuvchi obyektlar , masalan 1,2,3,4…

iteratsiya takrorlanish.

map() ga argument sifatida beriladigan funktsiyani yozib olamiz.

def to_upper_case(s): 
  return str(s).upper()

Ushbu funksiyaning ishi oddiy u o’ziga berilgan satr qiymatini yuqori harf registridan qaytaradi.

map() satrlar bilan ishlatilganda: 

# map() with string 
map_iterator = map(to_upper_case, 'abc') 
print(type(map_iterator)) 
print_iterator(map_iterator)

Natija: 

A B C

map() obyekti iterator hisoblanganligi uchun biz uni standart ma’lumot turlari funksiyalariga argument sifatida berishimiz mumkin bo’ladi. Masalan list() , tuple() yoki set() kabilar.

map_iterator = map(to_upper_case, ['a', 'b', 'c']) 
my_list = list(map_iterator) 
print(my_list) 
map_iterator = map(to_upper_case, ['a', 'b', 'c']) 
my_set = set(map_iterator) 
print(my_set) 
map_iterator = map(to_upper_case, ['a', 'b', 'c']) 
my_tuple = tuple(map_iterator) 
print(my_tuple)

lambda bilan qo’llanishi 

Agar biz map() ni qayta ishlatishni istamasak va biz hal qilishimiz kerak bo’lgan muammo unchalik ham katta bo’lmasa , buning uchun butun boshli funktsiyani ovora qilgimiz kelmasa u holda biz map() ni lambda bilan ishlatishimiz ham mumkin.

list_numbers = [1, 2, 3, 4] 
map_iterator = map(lambda x: x * 2, list_numbers) 
print_iterator(map_iterator)

Xulosa 

Demak map() , biz 2 ta argument beramiz, birinchi argument bu biz yozgan funktsiya ikkinchi argument esa bu iterator obyekt (satr, list , tuple ..) bizni funktsiyamizni har bir takrorlanishda iteratorning elementlariga qo’llab natijani qaytarib beruvchi standart funktsiya ekan. 

Eslatma! agar map() qabul qilishi kerak bo’lgan argumentlar to’g’ri ko’rsatilmasa u holda xatolik yuzaga keladi va kod to’xtaydi. Misol tariqasida map() ga None obyekti berilgan kodni keltiramiz.

map_iterator = map(None, 'abc') 
print(map_iterator) 
for x in map_iterator: 
  print(x)

Natija:

map_iterator: TypeError: ‘NoneType’ object is not callable

Vasilyev A.N dan tarjima qilindi.

Umumiy Dasturlash
Python: map() funktsiyasi