Fungsi Python map(), Dijelaskan dengan Contoh
Diterbitkan: 2022-08-25Dalam tutorial ini, Anda akan belajar cara menggunakan fungsi Python map() untuk menerapkan fungsi pada semua item dari iterable.
Python mendukung paradigma pemrograman fungsional yang memungkinkan Anda mendefinisikan tugas sebagai komputasi fungsi secara terprogram. Anda dapat memperlakukan fungsi Python sebagai objek: suatu fungsi dapat mengambil fungsi lain sebagai parameter dan mengembalikan fungsi lain.
Fungsi map() mengambil fungsi sebagai argumen dan memungkinkan Anda menerapkannya ke semua item secara berurutan.
Di akhir tutorial ini, Anda akan dapat menggunakan fungsi Python map() — untuk menulis ulang perulangan verbose dan pemahaman daftar. Anda akan membuat kode beberapa contoh untuk memahami berbagai cara Anda dapat menggunakan fungsi map() .
Cara Menerapkan Fungsi ke Elemen Daftar Python

Mari kita mulai diskusi kita dengan sebuah contoh.
Di sini nums adalah daftar angka.
nums = [2,4,3,7] Selanjutnya, pertimbangkan fungsi self_pow() . Fungsi self_pow() mengambil angka sebagai argumen dan mengembalikan angka yang dipangkatkan ke angka itu sendiri: n**n.
Dalam Python, ** adalah operator eksponensial. a**b mengembalikan nilai a yang dipangkatkan b, a b .
def self_pow(n): return n**nTO-DO : Untuk membuat daftar baru
nums_powdengan menerapkan fungsiself_pow()ke setiap elemen dalam daftarnums.
Menggunakan untuk Loop
Untuk melakukan ini, Anda dapat menggunakan for loop dengan Python:
- Untuk setiap nomor dalam daftar num, panggil fungsi
numsself_pow()dengannumsebagai argumennya. - Tambahkan hasil pemanggilan fungsi ke daftar baru
nums_pow.
nums_pow = [] for num in nums: nums_pow.append(self_pow(num)) print(nums_pow) Dalam output, setiap angka nums dibangkitkan ke dirinya sendiri. Elemen-elemen dalam daftar nums_pow adalah sebagai berikut: 2 2 , 4 4 , 3 3 ,7 7 .
Output [4, 256, 27, 823543]Menggunakan Pemahaman Daftar
Anda dapat membuat ini ringkas menggunakan pemahaman daftar. Dari loop for eksplisit di atas, kita dapat mengidentifikasi ekspresi output, dan daftar yang akan dilewati.

Kami kemudian dapat memodifikasi ekspresi pemahaman daftar umum:
new_list = [<output expression> for item in iterable] Ekspresi pemahaman daftar untuk menghasilkan daftar nums_pow adalah sebagai berikut:
nums_pow = [self_pow(num) for num in nums] print(nums_pow)Outputnya sama dengan yang digunakan untuk loop, seperti yang diharapkan.
Output [4, 256, 27, 823543] Alih-alih pemahaman loop dan daftar, Anda dapat menggunakan fungsi Python map() dengan sintaks ringkas yang membantu menerapkan fungsi ke semua item dalam iterable. Mari kita mulai dengan mempelajari sintaks dari fungsi peta.
Python map() Sintaks Fungsi

Sintaks umum untuk menggunakan Fungsi Python map() adalah sebagai berikut:
map(function, iterable_1,[iterable_2,...,iterable_n]) Fungsi map() mengambil setidaknya dua argumen, fungsi dan iterable .
Dalam sintaks di atas:
- function menunjukkan fungsi Python atau secara umum, setiap panggilan Python. Ini termasuk fungsi yang ditentukan pengguna dan built-in, kelas, instance dan metode kelas, dan banyak lagi.
- iterable adalah setiap iterable Python yang valid, seperti daftar, tuple, dan string.
- Fungsi map() menerapkan fungsi ke setiap item dalam iterable
Apa yang dikembalikan oleh fungsi map()?
Ini mengembalikan objek peta. Anda kemudian dapat melemparkan objek peta ke daftar menggunakan sintaks: list(map(function,iterable)).
Bergantung pada kasus penggunaan, Anda dapat memasukkannya ke dalam Tuple Python.

Sekarang setelah Anda mempelajari sintaks dari fungsi Python map() , mari kita mulai mengkodekan contoh.
Anda harus memiliki Python 3.x untuk mengikuti tutorial ini. Selain itu, Anda dapat menjalankan cuplikan kode di editor Python online Geekflare.
Cara Menggunakan Fungsi map() dengan Fungsi Buatan Pengguna

#1 . Sebelumnya, kita telah menerapkan fungsi self_pow() ke setiap nomor dalam daftar nums . Dalam sintaks untuk fungsi map() , kita dapat meneruskan fungsi self_pow dan daftar nums sebagai argumen.
Catatan : Anda hanya harus menentukan nama fungsi dan bukan panggilan fungsi. Gunakan self_pow dan bukan self_pow() .
Fungsi map() mengembalikan objek peta.
print(map(self_pow,nums)) <map object at 0x7f7d315c14d0>Kami kemudian dapat mentransmisikan objek peta ke dalam daftar menggunakan fungsi list(), seperti yang ditunjukkan di bawah ini.
nums_pow = list(map(self_pow,nums)) print(nums_pow) Inilah output di mana setiap num dalam nums dipetakan ke num num dalam daftar nums_pow .
Output [4, 256, 27, 823543] #2 . Pertimbangkan fungsi berikut inch_to_cm() yang mengubah inci ke sentimeter. 1 inci = 2,54 cm .
def inch_to_cm(inch): return inch*2.54 Untuk mengonversi nilai inci dalam daftar inches ke sentimeter, Anda dapat menggunakan fungsi map() seperti yang ditunjukkan pada sel kode di bawah ini.
inches = [5.54,3.4,1,25,8.2] cms = list(map(inch_to_cm,inches)) print(cms) Daftar cms berisi nilai inci yang dinyatakan dalam sentimeter.
Output [14.0716, 8.636, 2.54, 63.5, 20.828]Cara Menggunakan Fungsi map() dengan Fungsi Bawaan

Di bagian ini, kita akan mempelajari cara menggunakan map() dengan fungsi bawaan di Python.
#1 . Daftar strings adalah daftar bahasa pemrograman. Anda ingin membuat daftar strings_upper baru yang berisi string bahasa pemrograman dalam huruf besar.
strings = ['JavaScript','Rust','Python','Go']Metode string
.upper()bekerja pada string dan mengembalikan salinan yang diformat dalam huruf besar.
strings_upper = list(map(str.upper,strings)) print(strings_upper) Daftar strings_upper menyertakan string dalam daftar strings yang diformat dalam huruf besar.
Output ['JAVASCRIPT', 'RUST', 'PYTHON', 'GO'] #2 . Fungsi len() bawaan dalam Python mengambil urutan sebagai argumen dan mengembalikan panjangnya. Untuk mencari panjang setiap string dalam daftar strings , kita dapat menggunakan fungsi map() dan menerapkan fungsi panjang pada setiap string, seperti yang ditunjukkan di bawah ini.
strings_len = list(map(len,strings)) print(strings_len) Output [10, 4, 6, 2] # 3 . Anda dapat menggunakan fungsi map() dengan koleksi lain seperti tupel.

Contoh berikut berisi tuple yang berisi informasi tentang jumlah kamar tidur, luas, dan kota di mana sebuah rumah berada.
Dalam Python, fungsi type() mengembalikan tipe data dari objek Python apa pun. Untuk mendapatkan tipe data semua item dalam tupel ini, Anda dapat menggunakan fungsi map() untuk memanggil fungsi type pada setiap item tupel.
house = (2,758.5,'Bangalore') house_elt_type = tuple(map(type,house)) print(house_elt_type)Kami telah mentransmisikan objek peta ke dalam sebuah tupel. Anda juga dapat memasukkan ke dalam daftar atau koleksi lainnya.
Pada output di bawah, kita melihat bahwa tipe data 2, 758.5, dan Bangalore, telah disimpulkan sebagai 'int', 'float', dan 'str', masing-masing.
Output (<class 'int'>, <class 'float'>, <class 'str'>)#4 . Dengan Python, Anda dapat mengimpor modul bawaan dan menggunakan fungsi yang ditentukan dalam modul.
Untuk menghitung akar kuadrat dari setiap angka dalam daftar nums , Anda dapat menggunakan fungsi akar kuadrat sqrt dari modul matematika.
import math nums = [30,90,34,45,97] nums_sqrt = list(map(math.sqrt,nums)) print(nums_sqrt) Output [5.477225575051661, 9.486832980505138, 5.830951894845301, 6.708203932499369, 9.848857801796104]Output di atas sulit untuk diurai dan diikuti. Anda mungkin ingin membulatkan setiap nilai akar kuadrat untuk mengatakan, dua tempat desimal.
Cara Membulatkan Angka Floating Point dengan Python
Mari kita definisikan fungsi round_2() yang mengambil nilai floating point dan membulatkannya ke dua tempat desimal.
def round_2(num): return round(num,2) Sekarang, Anda dapat menggunakan fungsi map() dengan round_2 dan daftar nums_sqrt .
nums_sqrt_round = list(map(round_2,nums_sqrt)) print(nums_sqrt_round) Output [5.48, 9.49, 5.83, 6.71, 9.85] Anda juga dapat menggunakan fungsi map() bersarang, di mana fungsi peta bagian dalam digunakan untuk menghitung list nums_sqrt , dan fungsi peta luar melakukan operasi pembulatan.
nums_sqrt_round = list(map(round_2,list(map(math.sqrt,nums)))) print(nums_sqrt_round) Output [5.48, 9.49, 5.83, 6.71, 9.85]Outputnya identik dalam kedua pendekatan di atas. Namun, Anda harus memastikan bahwa kode tersebut dapat dibaca dan dipelihara saat menyusun fungsi seperti yang ditunjukkan di atas.
Cara Menggunakan Fungsi map() dengan Fungsi Lambda

Di bagian sebelumnya, Anda mempelajari cara menggunakan fungsi Python map() dengan fungsi bawaan dan yang ditentukan pengguna. Sekarang Anda akan mempelajari cara menggunakan fungsi map() dengan fungsi lambda, yang anonim dengan Python.
Terkadang, Anda akan memiliki fungsi yang tubuhnya hanya berisi satu baris kode, dan Anda mungkin perlu menggunakan fungsi tersebut hanya sekali dan tidak merujuknya ke tempat lain dalam program. Anda dapat mendefinisikan fungsi seperti fungsi lambda dengan Python.
Catatan :
lambda args: expressionadalah sintaks umum untuk menggunakan fungsi lambda Python.
#1 . Pertimbangkan strings daftar berikut. Misalkan Anda ingin mendapatkan daftar strings_rev – berisi salinan terbalik dari setiap string.
strings = ['JavaScript','Rust','Python','Go']Kita dapat membalikkan string Python menggunakan pengirisan string.
Catatan : Ini adalah generalisasi dari ekspresi string slicing
str[start:stop:step].– Tanpa nilai
startdanstop, irisan dimulai dari awal string dan meluas hingga akhir string.
– Nilai negatif daristepmemberikan irisan mulai dari akhir string.
– Oleh karena itu,str[::-1]mengembalikan salinan terbalik dari str.
Anda dapat menggunakan fungsi lambda ini: lambda x:x[::-1] Di dalam fungsi peta, seperti yang ditunjukkan di bawah ini.
strings_rev = list(map(lambda x:x[::-1],strings)) print(strings_rev)Seperti contoh lainnya, kami memasukkan objek peta ke dalam daftar. Pada output, kita melihat bahwa setiap string dalam daftar string telah dibalik.
Output ['tpircSavaJ', 'tsuR', 'nohtyP', 'oG']#2 . Di bagian sebelumnya, kami menghitung akar kuadrat dari setiap angka dalam daftar angka dan kemudian membulatkan setiap nilai akar kuadrat ke dua tempat desimal.
Kami menggunakan fungsi round_2() untuk melakukan ini. Mari kita tulis ulang fungsi round_2() sebagai fungsi lambda dan gunakan dengan fungsi map() yang dijelaskan di bawah ini.
nums_sqrt_round_l =list(map(lambda num:round(num,2),nums_sqrt)) print(nums_sqrt_round_l) Seperti yang terlihat di bawah, output identik dengan apa yang kita peroleh dari menggunakan fungsi round_2() .
Output [5.48, 9.49, 5.83, 6.71, 9.85]Cara Menggunakan Fungsi map() dengan Beberapa Iterables

Dalam contoh yang telah kita lihat, kita menerapkan fungsi pada semua item tepat satu iterable.
Terkadang, kita mungkin memiliki fungsi yang mengambil dua atau lebih argumen. Dalam hal ini, setiap argumen disimpan dalam daftar atau koleksi serupa.
Kita juga dapat menggunakan fungsi Python map() dengan beberapa daftar.
#1 . Pertimbangkan fungsi berikut area() yang menerima length dan breadth sebagai input dan mengembalikan area, length*breadth .
def area(length,breadth): return length*breadth Panjang dan lebar persegi panjang yang berbeda disimpan dalam dua daftar terpisah, lengths dan breadths , masing-masing.
lengths = [4,8,10,18] breadths = [9,4,6,11] Kita dapat menggunakan fungsi map() untuk menerapkan fungsi area pada daftar di atas dengan meneruskan daftar lengths dan breadths .
areas = list(map(area,lengths,breadths)) print(areas) Karena area fungsi menerima dua argumen, nilai panjang dan lebar masing-masing digunakan dari daftar lengths breadths .
Output [36, 32, 60, 198]#2 . Modul matematika Python memiliki fungsi log yang membantu kita menghitung logaritma suatu bilangan ke basis apa pun.
Catatan : log(x, base) mengembalikan nilai log x ke basis yang ditentukan oleh basis nilai , basis log x . Jika basis tidak ditentukan, nilai basis default adalah e (log menghitung logaritma natural).
Dalam contoh ini:
- Daftar
xsesuai dengan nilai yang ingin Anda hitung logaritmanya. - Daftar
baseberisi semua nilai dasar yang akan digunakan dalam perhitungan logaritma.
x = [2,6,12,10] base = [2,3,2,5] Kita dapat menggunakan fungsi Python map() dengan math.log , daftar, x dan base untuk mendapatkan daftar baru log_x , sebagai berikut.
log_x = list(map(math.log,x,base)) print(log_x)Berikut outputnya.
Output [1.0, 1.6309297535714573, 3.5849625007211565, 1.4306765580733933]Kesimpulan
Berikut ringkasan dari apa yang telah Anda pelajari dalam tutorial ini:
- Fungsi Python map() mengambil setidaknya dua argumen: fungsi dan iterable, dengan sintaks map(function, iterable(s)) .
- Fungsinya dapat berupa panggilan Python yang valid.
- Saat fungsi menerima k argumen, gunakan fungsi
map()dengan fungsi dan masing-masing argumen k dalam iterable.
Selanjutnya, belajar bekerja dengan set di Python.
