Daftar Pemahaman dengan Python – Dengan Contoh

Diterbitkan: 2022-02-18

Di Python, pemahaman daftar membantu Anda membuat daftar baru dari iterable yang ada, seperti daftar, string, dan tupel.

Sintaks ringkasnya memungkinkan Anda membuat daftar baru hanya dalam satu baris kode. Dan tutorial ini akan mengajarkan Anda bagaimana Anda bisa melakukannya.

Selama beberapa menit berikutnya, Anda akan belajar:

  • Cara membuat daftar baru menggunakan for loop,
  • Sintaks untuk menggunakan pemahaman daftar dengan Python, dan
  • Bagaimana cara mengubah pemahaman daftar dengan pernyataan kondisional if .

Selain itu, Anda juga akan membuat kode beberapa contoh yang akan membantu Anda memahami pemahaman daftar dengan lebih baik.

Mari selami.

Cara Membuat Daftar Python Menggunakan for Loops

Misalkan Anda memiliki daftar nomor nums . Dan Anda ingin membuat daftar lain yang berisi pangkat tiga dari semua angka dalam nums . Inilah cara Anda melakukannya menggunakan for loop dengan Python:

 nums = [2,3,5,7] num_cubes = [] for num in nums: num_cubes.append(num**3) print(num_cubes) # Output [8, 27, 125, 343]

Dalam kode di atas, kami memiliki langkah-langkah berikut:

  • Inisialisasi daftar kosong num_cubes .
  • nums daftar angka.
  • Akses setiap angka num , dan hitung kubusnya menggunakan operator eksponensial: num**3 .
  • Terakhir, tambahkan nilai pangkat tiga ke daftar num_cubes

Catatan: Dalam Python, operator eksponensial ** digunakan dengan sintaks: num**pow —angka num dinaikkan menjadi pangkat pow .

Namun, Anda dapat melakukan ini dengan lebih mudah menggunakan pemahaman daftar dengan Python. Mari kita lanjutkan untuk mempelajari sintaksnya.

Sintaks Pemahaman Daftar Python

Sintaks umum untuk pemahaman daftar ditunjukkan di bawah ini.

 <new_list> = [<expression> for <item> in <iterable>]

Mari kita parsing sintaks di atas.

  • Dalam Python, daftar dibatasi oleh sepasang tanda kurung siku [] —oleh karena itu Anda harus menyertakan pernyataan pemahaman daftar di dalam [] .
  • <item> di <iterable> menandakan bahwa Anda mengulang melalui iterable. Objek Python apa pun yang dapat Anda lewati dan mengakses item individual—seperti daftar, tupel, dan string adalah iterable.
  • <expression> adalah output yang ingin Anda hitung untuk setiap <item> dalam <iterable> .

Dan ini terdengar sederhana, ya?

Intinya, Anda ingin melakukan sesuatu untuk semua item dalam daftar (atau yang dapat diubah apa pun) untuk mendapatkan list baru .

Dengan menggunakan ini, kita dapat menyederhanakan sintaks, seperti yang ditunjukkan pada gambar di bawah ini.

daftar-pemahaman-sintaks
Sintaks Pemahaman Daftar Python (Gambar oleh penulis)

Sekarang setelah Anda mempelajari sintaksnya, sekarang saatnya untuk memulai pengkodean. Anda dapat menggunakan IDE Python online Geekflare untuk mengikuti contoh-contoh ini. Atau Anda dapat menjalankannya di mesin lokal Anda.

Contoh Pemahaman Daftar Python

Di bagian sebelumnya, Anda membuat daftar baru num_cubes dari nums . Mari kita mulai dengan menulis ulang menggunakan pemahaman daftar.

Menggunakan Pemahaman Daftar dengan Angka

Sekarang mari kita gunakan sintaks yang disederhanakan sebagai berikut:

  • <do-this> : Di sini, Anda harus mengkubus setiap num . Jadi ganti <do-this> dengan num**3 .
  • <all-items> : Variabel perulangan adalah num —nomor individu dalam daftar.
  • <this-list> : Daftar yang kami miliki adalah nums .
  • Dan [num**3 for num in nums] adalah ekspresi terakhir.

Menyatukan semuanya, kami memiliki cuplikan kode berikut:

 num_cubes = [num**3 for num in nums] print(num_cubes) # Output [8, 27, 125, 343]

Selamat, Anda telah mengkodekan pemahaman daftar pertama Anda.

Selanjutnya, mari bekerja dengan string Python.

Menggunakan Pemahaman Daftar dengan String

Misalkan Anda memiliki authors daftar — Anda dapat menulis ulang daftar di bawah ini dengan penulis favorit Anda.

 authors = ["jane austen","george orwell","james clear","cal newport"]

Perhatikan bagaimana nama penulis dalam huruf kecil dalam daftar di atas. Kami sekarang ingin memformatnya dalam kasus judul dan menyimpannya dalam daftar baru yang disebut author_list .

Catatan: Dalam Python, metode string title() menerima string sebagai argumen, dan mengembalikan salinan string yang diformat dalam kasus judul. Artinya, huruf pertama dari setiap kata ditulis dengan huruf kapital: First-name Last-name belakang

Jadi, inilah yang perlu Anda lakukan:

  • loop melalui daftar authors dan untuk setiap author dalam daftar,
  • panggil author.title() untuk mendapatkan salinan string yang diberi judul.

Dan kode Python untuk ini ditunjukkan di bawah ini:

 authors = ["jane austen","george orwell","james clear","cal newport"] author_list = [author.title() for author in authors] print(author_list) # Output ['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

Pada output di atas, amati bagaimana nama semua penulis telah diformat dalam kasus judul—yang kita inginkan.

Menggunakan Pemahaman Daftar dengan Banyak Daftar

Sejauh ini, Anda telah mempelajari cara menggunakan pemahaman daftar untuk membuat daftar baru dari satu daftar yang ada. Sekarang mari kita pelajari cara membuat daftar baru dari beberapa daftar.

Misalnya, pertimbangkan masalah ini: Anda memiliki dua daftar l_arr dan b_arr yang berisi panjang dan lebar 4 persegi panjang.

Dan Anda perlu membuat area daftar baru yang mencakup area dari 4 persegi panjang ini. Ingat, area = length * breadth .

 l_arr = [4,5,1,3] b_arr = [2,1,7,9]

Anda memerlukan elemen dari kedua daftar ( l_arr dan b_arr ) untuk menghitung luas. Dan Anda dapat melakukannya menggunakan fungsi zip() Python.

Catatan: Dalam Python, fungsi zip() mengambil satu atau lebih iterables sebagai argumen dengan sintaks zip(*iterables) . Kemudian mengembalikan iterator tupel, di mana tupel i berisi elemen i dari masing-masing iterable.

Gambar berikut menjelaskan hal ini secara rinci. Anda memiliki 4 nilai dalam l_arr dan b_arr , jadi rentang indeksnya adalah dari 0 hingga 3. Seperti yang Anda lihat, Tuple 0 berisi l_arr[0] dan b_arr[0] , Tuple 1 berisi l_arr[1] dan b_arr[1] , dan seterusnya.

python-zip-fungsi
Fungsi Python zip() (Gambar oleh penulis)

Oleh karena itu, Anda dapat mengulang melalui zip(l_arr,b_arr) seperti yang ditunjukkan di bawah ini:

 area = [l*b for l,b in zip(l_arr,b_arr)] print(area) # Output [8,5,7,27]

Di bagian berikutnya, Anda akan mempelajari cara menggunakan pernyataan bersyarat di dalam pemahaman daftar.

Pemahaman Daftar Python dengan Sintaks Kondisi

Mari kita mulai dengan membangun sintaks sebelumnya untuk pemahaman daftar.

Berikut sintaksnya:

 <new_list> = [<expression> for <item> in <iterable> if <condition>]

Daripada menghitung <expression> untuk semua item, Anda hanya ingin melakukannya untuk item yang memenuhi <condition> tertentu —di mana, condition := True . Dan ini mengarah ke sintaks yang disederhanakan seperti yang ditunjukkan:

daftar-pemahaman-dengan-kondisi-sintaks
Pemahaman Daftar Python dengan Sintaks Kondisi (Gambar oleh penulis)

Dengan itu, mari kita lanjutkan ke contoh kode.

Pemahaman Daftar Python dengan Contoh Kondisi

#1. Anda diberi string "Saya sedang belajar Python pada tahun 2022" . Anda ingin mendapatkan daftar semua digit dalam string ini. Jadi bagaimana Anda melakukannya?

Dalam Python, <char>.isdigit() bekerja pada karakter <char> dan mengembalikan True jika berupa digit (0-9); lain itu mengembalikan False .

Cuplikan kode di bawah ini menunjukkan bagaimana Anda dapat mengumpulkan daftar semua digit dalam string str1 .

 str1 = "I'm learning Python3 in 2022" digits = [char for char in str1 if char.isdigit()] print(digits) # Output ['3', '2', '0', '2', '2']

Dalam kode di atas:

  • Anda mengulang string str1 ,
  • akses setiap char untuk memeriksa apakah itu digit menggunakan metode isdigit() , dan
  • tambahkan char ke digits daftar baru hanya jika itu adalah digit.

Mari kita ambil contoh lain.

#2. Anda memiliki daftar buah-buahan. Dan Anda ingin membuat daftar starts_with_b yang berisi semua buah dari daftar fruits yang dimulai dengan b . Anda dapat menggunakan metode startswith() untuk menulis kondisi.

<str>.startswith('char') mengembalikan True jika <str> dimulai dengan 'char'; lain itu mengembalikan False .

 fruits = ['blueberry','apple','banana','orange','cherry'] starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')] print(starts_with_b) # Output ['blueberry', 'banana']

Pada output di atas, kita mendapatkan 'blueberry' dan 'banana' yang merupakan dua buah yang dimulai dengan 'b' dalam daftar fruits , seperti yang kita harapkan.

Dan itu mengakhiri diskusi kita tentang pemahaman daftar.

Kesimpulan

Saya harap tutorial ini membantu Anda memahami pemahaman daftar dengan Python.

Mari kita rangkum:

  • Anda dapat menggunakan [<do this> for <all-items> di <this-list>] untuk membuat daftar baru menggunakan pemahaman daftar.
  • Selain itu, Anda dapat menggunakan sintaks [<do this> untuk <all-items> di <this-list> if <condition-is-True>] dengan pernyataan if conditional.

Selain itu, Anda juga telah mengkodekan beberapa contoh. Sebagai langkah selanjutnya, Anda dapat mencoba menulis ulang beberapa loop Python yang ada untuk pembuatan daftar menggunakan pemahaman daftar. Selamat mengkode! Sampai tutorial berikutnya.

Anda sekarang dapat melihat cara mengonversi daftar ke kamus atau mempelajari cara menangani file dengan Python.