Menguasai Fungsi map() Python: Sintaks, Contoh, dan Praktik Terbaik
Fungsi bawaan map() Python menerapkan fungsi ke setiap item dalam iterable (list, tuple, set, string, dictionary, dll.) dan mengembalikan iterable baru. Ini adalah tonggak utama untuk pemrograman gaya fungsional dalam Python.
Apa yang Akan Anda Pelajari
- Sintaks dan parameter inti
- Bagaimana
map() bekerja di dalam - Menggunakan
map() dengan fungsi bawaan - Menerapkan
map() ke string, list, tuple, dictionary, dan set - Memanfaatkan ekspresi lambda dengan
map() - Menggabungkan beberapa iterator dalam satu panggilan
Sintaks
map(function, iterable1, iterable2, ... iterableN)
Parameter
- function: Callable wajib yang akan diterapkan ke setiap elemen.
- iterable(s): Satu atau lebih iterable. Fungsi menerima satu elemen dari setiap iterable per panggilan.
Nilai Kembali
Hasilnya adalah objek map—iterable malas yang menghasilkan item yang ditransformasi. Konversi ke list, tuple, atau set untuk mengkonsumsi nilai.
Bagaimana map() Bekerja
Di bawah ini adalah contoh sederhana yang mengkuadratkan setiap angka dalam list.
def square(n): return n * n my_list = [2, 3, 4, 5, 6, 7, 8, 9] updated = map(square, my_list) print(list(updated)) # [4, 9, 16, 25, 36, 49, 64, 81]
Objek map malas; mengonversinya ke list memaksa evaluasi.
Menggunakan map() dengan Fungsi Bawaan
Gabungkan map() dengan bawaan apa pun yang menerima satu argumen. Misalnya, membulatkan angka desimal:
values = [2.6743, 3.63526, 4.2325, 5.9687967, 6.3265, 7.6988, 8.232, 9.6907] rounded_vals = map(round, values) print(list(rounded_vals)) # [3, 4, 4, 6, 6, 8, 8, 10]
Map Melalui String
String adalah iterable, jadi map() dapat mengubah setiap karakter atau kata.
def to_upper(s): return s.upper() text = "welcome to guru99 tutorials!" print("".join(map(to_upper, text))) # WELCOME TO GURU99 TUTORIALS! Map Melalui List Angka
def times_ten(n): return n * 10 nums = [2, 3, 4, 5, 6, 7, 8, 9] print(list(map(times_ten, nums))) # [20, 30, 40, 50, 60, 70, 80, 90]
Map Melalui Tuple
def to_upper_str(s): return s.upper() languages = ("php", "java", "python", "c++", "c") print(list(map(to_upper_str, languages))) # ['PHP', 'JAVA', 'PYTHON', 'C++', 'C'] Map Melalui Dictionary dan Set
Saat mengulang dictionary, map() menerima kunci-nya. Untuk set, urutan bersifat sembarang.
def times_ten(n): return n * 10 sample_set = {2, 3, 4, 5, 6, 7, 8, 9} print(sorted(map(times_ten, sample_set))) # [20, 30, 40, 50, 60, 70, 80, 90] Menggunakan Fungsi Lambda
Fungsi anonim menjaga kode tetap ringkas:
nums = [2, 3, 4, 5, 6, 7, 8, 9] print(list(map(lambda x: x * 10, nums))) # [20, 30, 40, 50, 60, 70, 80, 90]
Beberapa Iterator
Contoh 1: Menambahkan Dua List
def add(a, b): return a + b list1 = [2, 3, 4, 5, 6, 7, 8, 9] list2 = [4, 8, 12, 16, 20, 24, 28] print(list(map(add, list1, list2))) # [6, 11, 16, 21, 26, 31, 36]
Contoh 2: Menggabungkan Elemen List dan Tuple
def concat(a, b): return f"{a}_{b}" letters = ['a', 'b', 'b', 'd', 'e'] brands = ('PHP', 'Java', 'Python', 'C++', 'C') print(list(map(concat, letters, brands))) # ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C'] Poin Utama
map() mengubah setiap elemen dari iterable dengan fungsi yang diberikan. - Ia mengembalikan iterator malas; konversi ke
list, tuple, atau set untuk mewujudkan hasil. - Kompatibel dengan callable apa pun—termasuk bawaan, fungsi yang ditentukan pengguna, dan lambda.
- Mendukung beberapa iterable; fungsi harus menerima jumlah argumen yang cocok.
- Bagus untuk kode gaya fungsional yang bersih dan untuk memproses kumpulan data besar secara efisien.