Cara Menghitung Kemunculan dalam Daftar dengan Python
Pelajari cara terbaik untuk menghitung kemunculan elemen dalam daftar Python. Bandingkan metode count(), collections.Counter, dan penghitungan kamus.
Ikhtisar
Menganalisis kumpulan data sering kali mengharuskan Anda menghitung kemunculan elemen individual. Misalnya, menghitung berapa banyak suara yang diterima masing-masing kandidat, menghitung frekuensi kata dalam file teks, atau mengidentifikasi duplikat dalam log transaksi. Python menyediakan beberapa alat untuk menyelesaikan masalah ini, bergantung pada apakah Anda mencari jumlah item tunggal atau penghitungan frekuensi lengkap.
Untuk memeriksa frekuensi satu elemen tertentu, tipe daftar bawaan menyediakan metode `.count(value)`. Ini mengulangi daftar dan mengembalikan bilangan bulat yang menghitung berapa kali nilai persisnya muncul. Meskipun sederhana dan mudah dibaca, memanggil `.count()` dalam satu lingkaran untuk menghitung semua elemen sangat tidak efisien, berjalan dalam kompleksitas O(N^2).
Untuk menghitung frekuensi semua elemen secara bersamaan dalam satu lintasan, perpustakaan standar menawarkan kelas `Penghitung` dalam modul `koleksi`. Meneruskan daftar ke `Penghitung` akan mengembalikan objek seperti kamus yang mewakili frekuensi semua elemen dalam waktu O(N). Ini juga menyediakan metode pembantu seperti `most_common()` untuk mengambil item teratas dengan cepat.
Kode & Output Eksekusi
Kode ini menunjukkan penghitungan elemen tunggal dalam daftar dan mendapatkan jumlah total item menggunakan collections.Counter.
from collections import Counter
colors = ["red", "blue", "red", "green", "blue", "red"]
# Method 1: Count a single item using list.count()
red_count = colors.count("red")
print("Occurrences of 'red':", red_count)
# Method 2: Count all items using collections.Counter (Fast and powerful)
color_counts = Counter(colors)
print("\nCounter Object:", color_counts)
print("Count of 'blue':", color_counts["blue"])
# Getting the top most common items
print("Most common color:", color_counts.most_common(1))
# Method 3: Counting manually using a loop and a standard dictionary
manual_counts = {}
for item in colors:
manual_counts[item] = manual_counts.get(item, 0) + 1
print("\nManual dict count:", manual_counts)Occurrences of 'red': 3
Counter Object: Counter({'red': 3, 'blue': 2, 'green': 1})
Count of 'blue': 2
Most common color: [('red', 3)]
Manual dict count: {'red': 3, 'blue': 2, 'green': 1}Implementasi Langkah demi Langkah
- Panggil list_variable.count(value) jika Anda hanya memerlukan hitungan satu item tertentu dalam daftar.
- Impor collections.Counter dan teruskan daftar untuk menghitung semua elemen unik dalam satu pass yang dioptimalkan.
- Gunakan metode .most_common(n) pada objek Counter untuk mengekstrak n elemen paling sering.
Pertanyaan yang Sering Diajukan
Apa yang terjadi jika saya mencari kunci yang hilang di objek collections.Counter?
Tidak seperti kamus standar yang memunculkan KeyError, objek Counter mengembalikan 0 untuk elemen yang hilang, mewakili nol kejadian.
Berapa kompleksitas waktu Counter dibandingkan dengan menghitung dalam satu lingkaran dengan list.count()?
Penghitung menghitung semua elemen dalam waktu linier O(N) dengan melewati daftar satu kali. Mengulangi elemen daftar dan memanggil list.count() membutuhkan waktu kuadratik O(N^2), yang sangat lambat untuk daftar besar.
Topik Terkait
Pelajari cara menemukan panjang daftar dengan Python menggunakan fungsi len(). Pahami kompleksitas waktu O(1) dan jumlah pemeriksaan.
Cara Menghapus Duplikat Dari Daftar dengan PythonPelajari cara menghapus duplikat dari daftar dengan Python sambil mempertahankan atau mengabaikan urutan. Bandingkan konversi set, tombol dict, dan metode loop.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Daftar Python
Pelajari segala sesuatu tentang daftar Python. Temukan cara membuat, mengiris, memodifikasi, dan melakukan iterasi melalui array dengan Python secara asli.
Lembar
Panduan referensi lengkap untuk manipulasi string Python. Kuasai pemformatan, pencarian, pemisahan, penggantian, dan pemeriksaan properti string.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.