Mencari elemen paling banyak di dalam List Python

Buah apa yang paling banyak di dalam keranjang? Dalam kehidupan nyata untuk menjawab hal tersebut, kita harus mengeluarkan buah satu per satu dari dalam keranjang atau dengan langsung saja menghitungnya di dalam kepala. Jika diformulasikan dengan Python, itu tampak seperti ini:

>>> fruit_list = ['mango', 'banana', 'banana', 'apple', 'mango', 'apple', 'banana'] >>> fruit_count = dict() >>> for fruit in fruit_list: ... if fruit in fruit_count.keys(): ... fruit_count[fruit] += 1 ... else: ... fruit_count[fruit] = 1 >>> fruit_count {'mango': 2, 'banana': 3, 'apple': 2}
Code language: PHP (php)

Kode di atas mengeluarkan element dari sebuah list fruit_list satu per satu, kemudian mengecek apakah element itu telah dikeluarkan sebelumnya? Jika iya, maka jumlah jenis buah yang disimpan dalam dict fruit_count akan ditambahkan 1. Jika tidak, maka akan dibuat key baru di dalam dict tersebut dengan isi 1.

Namun, bukan Python jika tidak ada cara cepatnya. Lihat kode di bawah ini:

>>> fruit_list = ['mango', 'banana', 'banana', 'apple', 'mango', 'apple', 'banana'] >>> max(set(fruit_list), key=fruit_list .count) 'banana'
Code language: JavaScript (javascript)

Untuk mengetahui bahwa banana adalah element terbanyak dalam list fruit_list, kita menggunakan fungsi built-in max. Pada kode di atas, parameter key adalah fungsi yang mengevaluasi positional argument yaitu set(fruit_list). Jika kode di bawah ini dijalankan:

>>> fruit_list.count('apple') 2
Code language: JavaScript (javascript)

maka akan muncul angka yang menunjukkan jumlah element 'apple' pada list fruit_list. Kemudian set(fruit_list) digunakan untuk mengubah list menjadi set, tujuannya adalah menghilangkan element yang sama.

>>> set(fruit_list) {'apple', 'mango', 'banana'}
Code language: JavaScript (javascript)

Dengan begitu, perintah max tak perlu menghitung lagi element yang sudah dihitung sebelumnya.

Diterbitkan oleh

Faruq Sandi

Loves cats, computer, and linux terminal.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.