Cara Menggunakan Fungsi map() dengan Python

Pelajari cara menggunakan fungsi map() Python. Kuasai penerapan fungsi ke iterable tanpa menulis loop, dan bandingkan peta dengan pemahaman daftar.

Coba Solusi ini di Editor

Ikhtisar

Saat memproses kumpulan data, Anda sering kali perlu menerapkan transformasi spesifik ke setiap item dalam sebuah iterable. Misalnya, mengonversi daftar nomor string menjadi bilangan bulat, atau menormalkan array string database dengan mengonversinya menjadi huruf kecil. Daripada menulis perulangan `for` yang bertele-tele, Python menyediakan alat bawaan yang disebut `peta()`.

Fungsi `map(function, iterable)` menerima fungsi transformasi dan iterable sebagai argumen. Ini menerapkan fungsi ke setiap elemen iterable dan mengembalikan objek iterator (objek `peta`). Karena dikembalikan sebagai iterator, penghitungan dijalankan dengan lambat: elemen hanya diproses saat Anda mengulanginya, sehingga menghemat memori untuk kumpulan data besar.

Untuk segera mendapatkan representasi daftar objek peta, Anda harus menampilkan hasilnya menggunakan konstruktor `list()`: `list(map(func, data))`. Anda dapat meneruskan fungsi standar apa pun, fungsi pustaka standar (seperti `str` atau `len`), atau fungsi anonim khusus yang dideklarasikan dengan kata kunci `lambda` langsung ke `map()` untuk eksekusi sebaris.

Kode & Output Eksekusi

Skrip ini mendemonstrasikan modifikasi koleksi menggunakan fungsi map() dengan transformasi string, memetakan item daftar ke angka, dan menggunakan callback lambda.

map_function.py
Coba di Editor
# 1. Map string conversion over a list of numbers
numbers = [1, 2, 3, 4]
string_numbers = list(map(str, numbers))
print("Mapped to strings:", string_numbers)

# 2. Square numbers using a lambda function inside map()
squared = list(map(lambda x: x**2, numbers))
print("Squared numbers:", squared)

# 3. Apply custom logic function to items
def normalize_name(name):
    return name.strip().capitalize()

names = ["  alice", "BOB  ", " charlie "]
clean_names = list(map(normalize_name, names))
print("Clean names list:", clean_names)
Keluaran Terminal
Mapped to strings: ['1', '2', '3', '4']
Squared numbers: [1, 4, 9, 16]
Clean names list: ['Alice', 'Bob', 'Charlie']

Implementasi Langkah demi Langkah

  • Identifikasi fungsi transformasi yang ingin Anda terapkan ke setiap elemen dalam koleksi.
  • Panggil map(function_name, iterable) untuk membuat iterator malas dari elemen yang diubah.
  • Bungkus panggilan map() di dalam list() jika Anda perlu segera mengakses semua elemen sebagai daftar standar.
  • Gabungkan map() dengan fungsi lambda untuk transformasi inline yang cepat dan satu kali.

Pertanyaan yang Sering Diajukan

Apakah map() lebih baik daripada pemahaman daftar?

Pemahaman daftar umumnya dianggap lebih mudah dibaca dan pythonic oleh komunitas. Namun, map() bisa lebih cepat ketika menerapkan fungsi bawaan yang sudah ada (seperti map(str, list)) karena menjalankan loop kode C yang dioptimalkan.

Bisakah map() mengambil banyak iterable?

Iya! Jika fungsi transformasi membutuhkan banyak argumen, Anda bisa meneruskan beberapa iterable ke map(). Misalnya, map(lambda x, y: x + y, list1, list2) akan menambahkan elemen berpasangan.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.