Kode tersebut mendefinisikan fungsi yang disebut "list_count_4" yang menggunakan daftar angka sebagai argumennya, "nums". Di dalam fungsi, itu menginisialisasi variabel "hitungan" ke nol. Selanjutnya, ia menggunakan perulangan for untuk mengiterasi setiap elemen dalam daftar "nums". Untuk setiap iterasi, ia memeriksa apakah elemen saat ini i. e. num sama dengan 4, jika benar itu menambah "hitungan" dengan 1. Setelah perulangan for selesai, fungsi mengembalikan "hitungan" terakhir dari berapa kali angka 4 muncul dalam daftar
Dua baris kode terakhir memanggil fungsi, dengan nilai masukan ([1, 4, 6, 7, 4]) dan ([1, 4, 6, 4, 7, 4]) dan mencetak hasilnya
Panggilan pertama akan mengembalikan 2, dan panggilan kedua akan mengembalikan 3Flow chart
Editor Kode Python
Punya cara lain untuk menyelesaikan solusi ini?
Sebelumnya. Tulis program Python untuk menemukan apakah angka yang diberikan (terima dari pengguna) genap atau ganjil, cetak pesan yang sesuai untuk pengguna
Lanjut. Tulis program Python untuk mendapatkan salinan n (integer non-negatif) dari 2 karakter pertama dari string yang diberikan. Kembalikan n salinan dari seluruh string jika panjangnya kurang dari 2
Berapa tingkat kesulitan latihan ini?
Mudah Sedang KerasUji keterampilan Pemrograman Anda dengan kuis w3resource
Ikuti kami di Facebook dan Twitter untuk pembaruan terbaru.
Piton. Kiat Hari Ini
Kelas Enum
Ini adalah pendekatan berkelas lain dari Python, tidak ada permainan kata-kata. Kelas enum Python akan memungkinkan Anda membuat anggota objek enum dengan nilai konstan dan unik yang kemudian dapat dicantumkan, dibandingkan, atau digunakan untuk identifikasi
Menghitung beberapa objek berulang sekaligus merupakan masalah umum dalam pemrograman. Python menawarkan banyak alat dan teknik yang dapat Anda gunakan untuk mengatasi masalah ini. Namun, Python >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 from menyediakan solusi yang bersih, efisien, dan Pythonic
Subkelas kamus ini menyediakan kemampuan penghitungan yang efisien di luar kotak. Memahami >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 dan cara menggunakannya secara efisien adalah keterampilan yang nyaman untuk dimiliki sebagai pengembang Python
Dalam tutorial ini, Anda akan mempelajari caranya
- Hitung beberapa objek berulang sekaligus
- Buat penghitung dengan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 Python
- Ambil objek paling umum di penghitung
- Perbarui jumlah objek
- Gunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 untuk memfasilitasi perhitungan lebih lanjut
Anda juga akan belajar tentang dasar-dasar penggunaan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 sebagai multiset, yang merupakan fitur tambahan dari kelas ini di Python
Bonus Gratis. 5 Pemikiran Tentang Python Mastery, kursus gratis untuk pengembang Python yang menunjukkan kepada Anda peta jalan dan pola pikir yang Anda perlukan untuk meningkatkan keterampilan Python Anda ke tingkat berikutnya
Menghitung Objek dengan Python
Terkadang Anda perlu menghitung objek dalam sumber data tertentu untuk mengetahui seberapa sering objek tersebut muncul. Dengan kata lain, Anda perlu menentukan frekuensinya. Misalnya, Anda mungkin ingin mengetahui seberapa sering item tertentu muncul dalam daftar atau urutan nilai. Jika daftar Anda pendek, menghitung item bisa langsung dan cepat. Namun, ketika Anda memiliki daftar panjang, menghitung sesuatu bisa jadi lebih menantang
Untuk menghitung objek, Anda biasanya menggunakan penghitung, yaitu dengan nilai awal nol. Kemudian Anda menambah penghitung untuk mencerminkan berapa kali objek tertentu muncul di sumber data input
Saat Anda menghitung kemunculan satu objek, Anda dapat menggunakan satu penghitung. Namun, saat Anda perlu menghitung beberapa objek berbeda, Anda harus membuat penghitung sebanyak objek unik yang Anda miliki
Untuk menghitung beberapa objek berbeda sekaligus, Anda bisa menggunakan kamus Python. Kunci kamus akan menyimpan objek yang ingin Anda hitung. Nilai kamus akan menyimpan jumlah pengulangan objek yang diberikan, atau jumlah objek
Misalnya, untuk menghitung objek dalam urutan menggunakan kamus, Anda dapat mengulang urutan, memeriksa apakah objek saat ini tidak ada dalam kamus untuk menginisialisasi penghitung (pasangan kunci-nilai), lalu menambah hitungannya sesuai
Berikut adalah contoh menghitung huruf dalam kata "Mississippi"
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. if letter not in counter: .. counter[letter] = 0 .. counter[letter] += 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _
Pengulangan >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 2 berulang pada huruf-huruf di >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 3. Di setiap iterasi, pernyataan bersyarat memeriksa apakah huruf yang ada belum menjadi kunci dalam kamus yang Anda gunakan sebagai >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 4. Jika demikian, itu membuat kunci baru dengan huruf itu dan menginisialisasi hitungannya menjadi nol. Langkah terakhir adalah menambah hitungan satu per satu. Saat Anda mengakses >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 4, Anda melihat bahwa huruf berfungsi sebagai kunci dan nilai sebagai hitungan
Catatan. Saat Anda menghitung beberapa objek berulang dengan kamus Python, perlu diingat bahwa itu pasti karena mereka akan berfungsi sebagai kunci kamus. Menjadi hashable berarti objek Anda harus memiliki nilai hash yang tidak pernah berubah selama masa pakainya. Dalam Python, objek juga hashable
Cara lain untuk menghitung objek dengan kamus adalah dengan menggunakan >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7 sebagai nilai default
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _
Saat Anda memanggil >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _8 dengan cara ini, Anda mendapatkan hitungan saat ini dari >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 9, atau >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7 (default) jika hurufnya hilang. Kemudian Anda menambah hitungan dengan >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _1 dan menyimpannya di bawah >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 9 yang sesuai di kamus
Anda juga dapat menggunakan >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _3 from untuk menghitung objek dalam satu lingkaran
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _
Solusi ini lebih ringkas dan mudah dibaca. Anda pertama kali menginisialisasi >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _4 menggunakan >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 3 dengan sebagai fungsi default pabrik. Dengan cara ini, saat Anda mengakses kunci yang tidak ada di >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 3 yang mendasarinya, kamus secara otomatis membuat kunci dan menginisialisasinya dengan nilai yang dikembalikan oleh fungsi pabrik
Dalam contoh ini, karena Anda menggunakan >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _7 sebagai fungsi pabrik, nilai awalnya adalah >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7, yang dihasilkan dari pemanggilan >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7 tanpa argumen
Seperti banyak tugas umum lainnya dalam pemrograman, Python menyediakan cara yang lebih baik untuk mendekati masalah penghitungan. Di >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7, Anda akan menemukan kelas yang dirancang khusus untuk menghitung beberapa objek berbeda sekaligus. Kelas ini nyaman disebut
Hilangkan iklanMemulai Dengan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 Python
>>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 adalah subkelas dari >>> from collections import Counter >>> Counter(set("mississippi")) Counter({'p': 1, 's': 1, 'm': 1, 'i': 1}) 6 yang dirancang khusus untuk menghitung objek hashable di Python. Ini adalah kamus yang menyimpan objek sebagai kunci dan dihitung sebagai nilai. Untuk menghitung dengan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6, Anda biasanya memberikan urutan atau objek hashable sebagai argumen untuk konstruktor kelas
>>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 secara internal mengulangi melalui urutan input, menghitung berapa kali objek tertentu muncul, dan menyimpan objek sebagai kunci dan menghitung sebagai nilai. Di bagian selanjutnya, Anda akan belajar tentang berbagai cara untuk membuat penghitung
Membangun Counter
Ada beberapa cara bagi Anda untuk membuat >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 instance. Namun, jika tujuan Anda adalah menghitung beberapa objek sekaligus, maka Anda perlu menggunakan urutan atau iterable untuk menginisialisasi penghitung. Misalnya, inilah cara Anda menulis ulang contoh Mississippi menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6
>>> ________0______
>>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 mengulangi >>> from collections import Counter >>> inventory = Counter( .. apple=10, .. orange=15, .. banana=0, .. tomato=-15 .. ) 2 dan menghasilkan kamus dengan huruf sebagai kunci dan frekuensinya sebagai nilai. Pada contoh pertama, Anda menggunakan string sebagai argumen untuk >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6. Anda juga dapat menggunakan list, tuple, atau iterable apapun dengan objek berulang, seperti yang Anda lihat pada contoh kedua
Catatan. Di >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6, yang sangat optimal menyediakan fungsi penghitungan. Jika fungsi ini tidak tersedia karena suatu alasan, maka kelas menggunakan yang setara tetapi kurang efisien
Ada cara lain untuk membuat >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 instance. Namun, mereka tidak secara ketat menyiratkan penghitungan. Misalnya, Anda dapat menggunakan kamus yang berisi kunci dan hitungan seperti ini
>>> >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _
Penghitung sekarang memiliki grup awal pasangan hitungan kunci. Cara membuat instance >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 ini berguna saat Anda perlu memberikan jumlah awal dari grup objek yang ada
Anda juga dapat menghasilkan hasil serupa dengan menggunakan argumen kata kunci saat memanggil konstruktor kelas
>>> >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _
Sekali lagi, Anda dapat menggunakan pendekatan ini untuk membuat objek >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 dengan status awal tertentu untuk pasangan kunci dan hitungannya
Dalam praktiknya, jika Anda menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 untuk menghitung sesuatu dari awal, maka Anda tidak perlu menginisialisasi hitungan karena memiliki nilai nol secara default. Kemungkinan lain mungkin menginisialisasi hitungan ke >>> from collections import Counter >>> Counter(i=4, s=4, p=2, m=1) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 1. Dalam hal ini, Anda dapat melakukan sesuatu seperti ini
>>> >>> from collections import Counter >>> Counter(set("mississippi")) Counter({'p': 1, 's': 1, 'm': 1, 'i': 1}) _
Set python menyimpan objek unik, jadi panggilan ke >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) 0 dalam contoh ini membuang huruf yang diulang. Setelah ini, Anda akan mendapatkan satu instance dari setiap huruf di iterable aslinya
>>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 mewarisi antarmuka kamus biasa. Namun, itu tidak memberikan implementasi kerja untuk mencegah ambiguitas, seperti >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) 3. Dalam contoh khusus ini, setiap huruf akan memiliki jumlah default >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) 4 terlepas dari jumlah kemunculannya saat ini di input iterable
Tidak ada batasan pada objek yang dapat Anda simpan di kunci dan nilai penghitung. Kunci dapat menyimpan objek hashable, sedangkan nilainya dapat menyimpan objek apa pun. Namun, untuk berfungsi sebagai penghitung, nilainya harus bilangan bulat yang mewakili hitungan
Berikut ini contoh contoh >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 yang memiliki hitungan negatif dan nol
>>> >>> from collections import Counter >>> inventory = Counter( .. apple=10, .. orange=15, .. banana=0, .. tomato=-15 .. ) _
Dalam contoh ini, Anda mungkin bertanya, “Mengapa saya memiliki >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) 6 tomat?” . Siapa tahu?
Hilangkan iklanMemperbarui Jumlah Objek
Setelah Anda memiliki instance >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6, Anda dapat menggunakan >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 0 untuk memperbaruinya dengan objek dan hitungan baru. Alih-alih mengganti nilai seperti >>> from collections import Counter >>> Counter(set("mississippi")) Counter({'p': 1, 's': 1, 'm': 1, 'i': 1}) _6 rekanannya, implementasi yang disediakan oleh >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 menambahkan jumlah yang ada bersama-sama. Itu juga membuat pasangan hitungan kunci baru bila diperlukan
Anda dapat menggunakan >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 0 dengan iterables dan pemetaan jumlah sebagai argumen. Jika Anda menggunakan iterable, metode menghitung itemnya dan memperbarui penghitung sesuai dengan itu
>>> >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) _
Sekarang Anda memiliki >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _5 contoh >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 6, >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 5 contoh >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 8, dan seterusnya. Anda juga memiliki beberapa pasangan hitungan kunci baru, seperti >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 9, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 00, dan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 01. Perhatikan bahwa iterable harus berupa urutan item daripada urutan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 02 pasang
Catatan. Seperti yang sudah Anda ketahui, tidak ada batasan nilai (hitungan) yang bisa Anda simpan di counter
Menggunakan objek selain bilangan bulat untuk penghitungan akan merusak fitur penghitung umum
>>> >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _
Dalam contoh ini, jumlah huruf adalah string, bukan nilai bilangan bulat. Ini melanggar >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _0, menghasilkan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 04
Cara kedua untuk menggunakan >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _0 adalah dengan memberikan penghitung lain atau pemetaan jumlah sebagai argumen. Dalam hal ini, Anda dapat melakukan sesuatu seperti ini
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 0
Pada contoh pertama, Anda memperbarui penghitung yang ada, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 06, menggunakan penghitung lain, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 07. Perhatikan bagaimana >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _0 menambahkan hitungan dari kedua penghitung
Catatan. Anda juga dapat menggunakan >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _0 dengan argumen kata kunci. Jadi, misalnya, melakukan sesuatu seperti >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _10 bekerja sama dengan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 11 pada contoh di atas
Selanjutnya, Anda menggunakan kamus biasa yang berisi item dan hitungan. Dalam hal ini, >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _0 menambahkan jumlah kunci yang ada dan membuat pasangan jumlah kunci yang hilang
Mengakses Konten Penghitung
Seperti yang sudah Anda ketahui, >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 memiliki antarmuka yang hampir sama dengan >>> from collections import Counter >>> Counter(set("mississippi")) Counter({'p': 1, 's': 1, 'm': 1, 'i': 1}) 6. Anda dapat melakukan tindakan yang hampir sama dengan penghitung seperti yang Anda bisa lakukan dengan kamus standar. Misalnya, Anda dapat mengakses nilainya menggunakan akses kunci seperti kamus (>>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 15). Anda juga dapat mengulangi kunci, nilai, dan item menggunakan teknik dan metode biasa
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 1
Dalam contoh ini, Anda mengakses dan mengulangi kunci (huruf) dan nilai (jumlah) penghitung Anda menggunakan antarmuka kamus yang sudah dikenal, yang menyertakan metode seperti >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 16, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 17, dan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 18
Catatan. Jika Anda ingin mempelajari lebih dalam tentang cara mengulang melalui kamus, lihat Cara Mengulang Melalui Kamus dengan Python
Poin terakhir yang perlu diperhatikan tentang >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 adalah jika Anda mencoba mengakses kunci yang hilang, maka Anda mendapatkan nol alih-alih >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 20
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 2
Karena huruf >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _21 tidak muncul dalam string >>> from collections import Counter >>> inventory = Counter( .. apple=10, .. orange=15, .. banana=0, .. tomato=-15 .. ) 2, penghitung mengembalikan >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7 ketika Anda mencoba mengakses hitungan untuk surat itu
Menemukan Objek Paling Umum
Jika Anda perlu membuat daftar sekelompok objek menurut frekuensinya, atau berapa kali mereka muncul, maka Anda dapat menggunakannya. Metode ini mengembalikan daftar >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _25 yang diurutkan berdasarkan jumlah objek saat ini. Objek dengan jumlah yang sama datang dalam urutan pertama kali muncul
Jika Anda memberikan bilangan bulat >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _26 sebagai argumen untuk >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24, maka Anda mendapatkan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 26 objek yang paling umum. Jika Anda menghilangkan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 26 atau menyetelnya ke >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 30, maka >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24 mengembalikan semua objek di penghitung
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 3
Dalam contoh ini, Anda menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _24 untuk mengambil objek yang paling sering di >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 06. Tanpa argumen atau dengan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _30, metode mengembalikan semua objek. Jika argumen untuk >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _24 lebih besar dari panjang penghitung saat ini, maka Anda mendapatkan semua objek lagi
Anda juga bisa mendapatkan objek yang paling tidak umum dengan hasil >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 4
Pengirisan pertama, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _37, mengembalikan semua objek di >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 06 dalam urutan terbalik menurut hitungannya masing-masing. Pemotongan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _39 mengekstrak dua objek terakhir dari hasil >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24. Anda dapat men-tweak jumlah objek paling tidak umum yang Anda dapatkan dengan mengubah nilai offset kedua di operator pengiris. Misalnya, untuk mendapatkan tiga objek yang paling jarang, Anda dapat mengubah >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 41 menjadi >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 42, dan seterusnya
Catatan. Lihat Daftar Reverse Python. Di luar. reverse() dan reversed() untuk contoh langsung penggunaan sintaks pemotongan
Jika Anda ingin >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24 berfungsi dengan benar, pastikan nilai di penghitung Anda dapat diurutkan. Ini adalah sesuatu yang perlu diingat karena, seperti yang disebutkan, Anda dapat menyimpan tipe data apa pun di penghitung
Hilangkan iklanMenempatkan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 Menjadi Tindakan
Sejauh ini, Anda telah mempelajari dasar-dasar membuat dan menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 objek dalam kode Anda. Anda sekarang tahu cara menghitung berapa kali setiap objek muncul dalam urutan tertentu atau iterable. Anda juga tahu caranya
- Buat penghitung dengan nilai awal
- Perbarui penghitung yang ada
- Dapatkan objek yang paling sering di counter tertentu
Di bagian berikut, Anda akan membuat kode beberapa contoh praktis sehingga Anda bisa mendapatkan ide yang lebih baik tentang seberapa berguna >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 Python
Menghitung Huruf dalam File Teks
Katakanlah Anda memiliki file yang berisi beberapa teks. Anda perlu menghitung berapa kali setiap huruf muncul dalam teks. Misalnya, Anda memiliki file bernama >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 47 dengan konten berikut
>>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _5
Ya, inilah The Zen of Python, daftar prinsip panduan yang menentukan filosofi inti di balik desain Python. Untuk menghitung berapa kali setiap huruf muncul dalam teks ini, Anda dapat memanfaatkan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 dan menulis fungsi seperti ini
>>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _6
Begini cara kerja kode ini
- Baris 5 mendefinisikan ________11______49. Fungsi ini menggunakan jalur file berbasis string sebagai argumen
- Baris 6 membuat penghitung kosong untuk menghitung huruf dalam teks target
- Baris 7 membuka file input untuk dibaca dan membuat iterator di atas konten file
- Baris 8 memulai perulangan yang berulang melalui konten file baris demi baris
- Baris 9 hingga 11 menentukan pemahaman daftar untuk mengecualikan karakter nonhuruf dari baris saat ini menggunakan. Pemahaman menurunkan huruf kecil sebelum memfilternya untuk mencegah jumlah huruf kecil dan huruf besar terpisah
- Panggilan saluran 12 >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str _0 pada penghitung huruf untuk memperbarui jumlah setiap huruf
Untuk menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _49, Anda dapat melakukan hal seperti ini
>>> ________11______7
Besar. Kode Anda menghitung frekuensi setiap huruf dalam file teks tertentu. Ahli bahasa sering menggunakan frekuensi huruf untuk identifikasi bahasa. Dalam bahasa Inggris, misalnya, studi tentang frekuensi huruf rata-rata mengungkapkan bahwa lima huruf yang paling umum adalah "e", "t", "a", "o", dan "i". " Wow. Itu hampir cocok dengan hasil Anda
Merencanakan Data Kategorikal Dengan Bagan Batang ASCII
Statistik adalah bidang lain di mana Anda dapat menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6. Misalnya, saat Anda bekerja dengan data kategorikal, Anda mungkin ingin membuat bagan batang untuk memvisualisasikan jumlah observasi per kategori. Bagan batang sangat berguna untuk memplot jenis data ini
Sekarang katakanlah Anda ingin membuat fungsi yang memungkinkan Anda membuat bagan batang ASCII di terminal Anda. Untuk melakukannya, Anda dapat menggunakan kode berikut
>>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _8
Dalam contoh ini, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _54 mengambil beberapa kategori >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 55, menghitung berapa kali setiap kategori unik muncul dalam data (>>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 56), dan menghasilkan bagan batang ASCII yang mencerminkan frekuensi tersebut
Inilah cara Anda dapat menggunakan fungsi ini
>>> >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 9
Panggilan pertama ke >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _54 memplot frekuensi setiap huruf dalam string input. Panggilan kedua memplot penjualan per buah. Dalam hal ini, Anda menggunakan penghitung sebagai masukan. Juga, perhatikan bahwa Anda dapat menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _58 untuk mengubah karakter bilah
Catatan. Dalam contoh di atas, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 54 tidak menormalkan nilai >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 56 saat menggambar bagan. Jika Anda menggunakan data dengan nilai >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _56 tinggi, maka layar Anda akan terlihat seperti simbol yang berantakan
Saat Anda membuat bagan batang, menggunakan batang horizontal memungkinkan Anda memiliki cukup ruang untuk label kategori. Fitur bermanfaat lainnya dari diagram batang adalah kemungkinan menyortir data menurut frekuensinya. Dalam contoh ini, Anda mengurutkan data menggunakan ________11______24
Hilangkan iklanMerencanakan Data Kategorikal Dengan Matplotlib
Sangat menyenangkan mengetahui cara membuat bagan batang ASCII dari awal menggunakan Python. Namun, dalam ekosistem Python, Anda dapat menemukan beberapa alat untuk memplot data. Salah satu alat tersebut adalah Matplotlib
Matplotlib adalah pustaka pihak ketiga untuk membuat visualisasi statis, animasi, dan interaktif dengan Python. Anda dapat menginstal pustaka dari PyPI menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 63 seperti biasa
>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _0
Perintah ini menginstal Matplotlib di lingkungan Python Anda. Setelah Anda menginstal pustaka, Anda dapat menggunakannya untuk membuat bagan batang dan lainnya. Inilah cara Anda membuat bagan batang minimal dengan Matplotlib
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 1
Di sini, Anda terlebih dahulu melakukan impor yang diperlukan. Kemudian Anda membuat penghitung dengan beberapa data awal tentang penjualan buah dan menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24 untuk mengurutkan data
Anda menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _65 untuk mengekstrak konten >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 06 menjadi dua variabel
- >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _67 memegang daftar buah-buahan
- >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _68 memegang unit yang sesuai dijual per buah
Kemudian Anda membuat diagram batang menggunakan. Saat Anda menjalankan , Anda mendapatkan jendela seperti berikut di layar Anda
Dalam bagan ini, sumbu horizontal menunjukkan nama setiap buah yang unik. Sedangkan sumbu vertikal menunjukkan jumlah unit yang terjual per buah
Menemukan Modus Sampel
Dalam statistik, modus adalah nilai (atau nilai) yang paling sering muncul dalam sampel data. Misalnya, jika Anda memiliki sampel >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _71, maka modusnya adalah >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) 4 karena paling sering muncul
Dalam beberapa kasus, mode bukanlah nilai unik. Pertimbangkan sampel >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _73. Di sini Anda memiliki dua mode, >>> from collections import Counter >>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1}) >>> letters.update("missouri") >>> letters Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1}) _4 dan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 75, karena keduanya muncul dalam jumlah yang sama
Anda akan sering menggunakan mode untuk mendeskripsikan data kategorikal. Misalnya, mode berguna saat Anda perlu mengetahui kategori mana yang paling umum di data Anda
Untuk menemukan mode dengan Python, Anda perlu menghitung jumlah kemunculan setiap nilai dalam sampel Anda. Maka Anda harus menemukan nilai (atau nilai) yang paling sering. Dengan kata lain, nilai dengan jumlah kemunculan tertinggi. Kedengarannya seperti sesuatu yang dapat Anda lakukan menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 dan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 24
Catatan. Modul Python di pustaka standar menyediakan fungsi untuk menghitung beberapa statistik, termasuk mode dan sampel. Contoh di bawah ini hanya dimaksudkan untuk menunjukkan betapa bermanfaatnya >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6
Inilah fungsi yang menghitung mode sampel
>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _2
Di dalam >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _80, pertama-tama Anda menghitung berapa kali setiap pengamatan muncul di input >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 55. Kemudian Anda menggunakan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _82 untuk mendapatkan frekuensi pengamatan yang paling umum. Karena >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _24 mengembalikan daftar tupel dalam bentuk >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 84, Anda perlu mengambil tupel di indeks >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7, yang paling umum dalam daftar. Kemudian Anda membongkar tuple menjadi dua variabel
- >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _86 memegang objek yang paling umum. Menggunakan garis bawah untuk memberi nama variabel menunjukkan bahwa Anda tidak perlu menggunakan variabel itu dalam kode Anda, tetapi Anda memerlukannya sebagai pengganti
- >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _87 memegang frekuensi objek yang paling umum di >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 55
Pemahaman daftar membandingkan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _89 dari setiap objek dengan hitungan yang paling umum, >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 87. Ini memungkinkan Anda untuk mengidentifikasi beberapa mode dalam sampel yang diberikan
Untuk menggunakan fungsi ini, Anda dapat melakukan sesuatu seperti ini
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 3
>>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} _80 Anda berfungsi. Ia menemukan mode data numerik dan kategorikal. Ini juga bekerja dengan sampel mode tunggal dan multimode. Sebagian besar waktu, data Anda akan datang dalam urutan nilai. Namun, contoh terakhir menunjukkan bahwa Anda juga dapat menggunakan penghitung untuk memberikan data masukan
Hilangkan iklanMenghitung File berdasarkan Jenis
Contoh menarik lainnya yang melibatkan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 adalah menghitung file dalam direktori tertentu, mengelompokkannya berdasarkan ekstensi file atau jenis file. Untuk melakukannya, Anda dapat memanfaatkan >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 93
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 4
Dalam contoh ini, pertama-tama Anda membuat iterator di atas entri dalam direktori tertentu menggunakan. Kemudian Anda menggunakan pemahaman daftar untuk membuat daftar yang berisi ekstensi () dari semua file di direktori target. Terakhir, Anda menghitung jumlah file yang menggunakan ekstensi file sebagai kriteria pengelompokan
Jika Anda menjalankan kode ini di komputer Anda, maka Anda akan mendapatkan keluaran yang berbeda tergantung pada konten direktori >>> word = "mississippi" >>> counter = {} >>> for letter in word: .. counter[letter] = counter.get(letter, 0) + 1 ... >>> counter {'m': 1, 'i': 4, 's': 4, 'p': 2} 96 Anda, jika memang ada. Jadi, Anda mungkin perlu menggunakan direktori input lain agar kode ini berfungsi
Menggunakan Instans >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 sebagai Multiset
Dalam matematika, multiset mewakili variasi dari satu set yang memungkinkan banyak contoh elemennya. Jumlah instance dari elemen tertentu dikenal sebagai multiplisitasnya. Jadi, Anda dapat memiliki multiset seperti {1, 1, 2, 3, 3, 3, 4, 4}, tetapi versi set akan dibatasi hingga {1, 2, 3, 4}
Sama seperti dalam matematika, set Python biasa hanya mengizinkan elemen unik
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 5
Saat Anda membuat set seperti ini, Python menghapus semua instance berulang dari setiap angka. Hasilnya, Anda mendapatkan satu set dengan elemen unik saja
Python mendukung konsep multiset dengan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6. Kunci dalam instance >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 bersifat unik, sehingga setara dengan satu set. Hitungan memegang multiplisitas, atau jumlah contoh, dari setiap elemen
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 6
Di sini, pertama-tama Anda membuat multiset menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6. Kuncinya setara dengan set yang Anda lihat pada contoh di atas. Nilai memegang multiplisitas dari setiap elemen dalam himpunan
>>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 mengimplementasikan banyak fitur multiset yang dapat Anda gunakan untuk menyelesaikan beberapa masalah. Kasus penggunaan umum untuk multiset dalam pemrograman adalah keranjang belanja karena dapat berisi lebih dari satu instance dari setiap produk, bergantung pada kebutuhan klien.
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 7
Dalam contoh ini, Anda membuat keranjang belanja menggunakan objek >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 sebagai multiset. Penghitung memberikan informasi tentang pesanan klien, yang mencakup beberapa sumber belajar. Loop >>> from collections import Counter >>> Counter({"i": 4, "s": 4, "p": 2, "m": 1}) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 2 berulang melalui penghitung dan menghitung >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 04 untuk setiap >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 05 dan mencetaknya ke layar Anda
Untuk memperkuat pengetahuan Anda tentang penggunaan objek >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 sebagai multiset, Anda dapat meluaskan kotak di bawah dan menyelesaikan latihan. Setelah selesai, perluas kotak solusi untuk membandingkan hasil Anda
Latihan. Hitung Jumlah Total yang Harus DibayarTampilkan/Sembunyikan
Sebagai latihan, Anda dapat memodifikasi contoh di atas untuk menghitung jumlah total yang harus dibayar saat checkout
Solusi. Hitung Jumlah Total yang Harus DibayarTampilkan/Sembunyikan
Inilah solusi yang mungkin
>>> ________18______8
Di baris pertama yang disorot, Anda menambahkan variabel baru untuk menampung total biaya semua produk yang Anda pesan. Di baris kedua yang disorot, Anda menggunakan an untuk mengumpulkan setiap >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 04 di >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 08
Sekarang setelah Anda memiliki gambaran tentang apa itu multiset dan bagaimana Python mengimplementasikannya, Anda dapat melihat beberapa fitur multiset yang disediakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6
Hilangkan iklanMemulihkan Elemen Dari Penghitung
Fitur multiset pertama dari >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 yang akan Anda pelajari adalah. Metode ini mengembalikan iterator pada elemen dalam multiset (contoh >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6), mengulang masing-masing sebanyak hitungannya
>>> >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 9
Efek bersih dari pemanggilan >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _11 pada penghitung adalah memulihkan data asli yang Anda gunakan untuk membuat penghitung itu sendiri. Metode mengembalikan elemen—huruf dalam contoh ini—dalam urutan yang sama saat pertama kali muncul di penghitung yang mendasarinya. Sejak Python 3. 7, >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 mengingat urutan penyisipan kuncinya sebagai fitur yang diwarisi dari >>> from collections import Counter >>> Counter(set("mississippi")) Counter({'p': 1, 's': 1, 'm': 1, 'i': 1}) 6
Catatan. Seperti yang sudah Anda ketahui, Anda dapat membuat penghitung dengan hitungan nol dan negatif. Jika jumlah elemen kurang dari satu, maka >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 11 akan mengabaikannya
Docstring dari >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _11 dalam memberikan contoh menarik menggunakan metode ini untuk menghitung angka dari. Karena faktor prima tertentu dapat muncul lebih dari satu kali, Anda mungkin akan mendapatkan multiset. Misalnya, kamu bisa menyatakan angka 1836 sebagai hasil kali faktor primanya seperti ini
1836 = 2 × 2 × 3 × 3 × 3 × 17 = 22 × 33 × 171
Anda dapat menulis ekspresi ini sebagai multiset seperti {2, 2, 3, 3, 3, 17}. Menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 Python, Anda akan memiliki >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 19. Setelah Anda memiliki penghitung ini, Anda dapat menghitung bilangan asli menggunakan faktor primanya
>>> >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 0
Perulangan berulang pada elemen di >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 20 dan mengalikannya untuk menghitung angka asli, >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 21. Jika Anda menggunakan Python 3. 8 atau lebih, maka Anda dapat menggunakan dari >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 23 untuk mendapatkan hasil yang serupa. Fungsi ini menghitung produk dari semua elemen di input iterable
>>> >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 1
Dalam contoh ini, panggilan ke >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 11 memulihkan faktor prima. Kemudian >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _25 menghitung >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 21 dari mereka sekaligus, yang menyelamatkan Anda dari menulis loop dan memiliki beberapa variabel perantara
Menggunakan >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _11 menyediakan cara untuk mengembalikan data input asli. Satu-satunya kelemahannya adalah, dalam banyak kasus, urutan item dalam masukan tidak akan cocok dengan urutan dalam keluaran
>>> >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 2
Dalam contoh ini, string yang dihasilkan tidak mengeja kata aslinya, >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 28. Namun, ia memiliki konten yang sama dalam hal huruf
Mengurangi Multiplisitas Elemen
Terkadang Anda perlu mengurangi multiplisitas (hitungan) elemen dalam multiset atau penghitung. Dalam hal ini, Anda dapat menggunakan >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 29. Sesuai dengan namanya, metode ini mengurangi jumlah yang disediakan dalam iterable atau pemetaan dari jumlah di penghitung target
Katakanlah Anda memiliki multiset dengan inventaris buah Anda saat ini dan Anda harus selalu memperbaruinya. Kemudian Anda dapat menjalankan beberapa operasi berikut
>>> >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 3
Di sini, Anda menggunakan beberapa cara untuk memberikan input data ke >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 29. Dalam semua kasus, Anda memperbarui jumlah setiap objek unik dengan mengurangi jumlah yang diberikan dalam data masukan. Anda dapat menganggap >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _29 sebagai padanan dari >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 0
Hilangkan iklanMengerjakan Aritmatika Dengan Banyaknya Elemen
Dengan >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _29 dan >>> from collections import Counter >>> letters = Counter({"i": "4", "s": "4", "p": "2", "m": "1"}) >>> letters.update("missouri") Traceback (most recent call last): ... TypeError: can only concatenate str (not "int") to str 0, Anda dapat menggabungkan penghitung dengan mengurangi dan menambahkan jumlah elemen yang sesuai. Sebagai alternatif, Python menyediakan operator praktis untuk penambahan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 35) dan pengurangan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 36) jumlah elemen, serta operator untuk persimpangan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 37) dan penyatuan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 38). Operator persimpangan mengembalikan jumlah minimum yang sesuai, sedangkan operator gabungan mengembalikan jumlah maksimum
Berikut adalah beberapa contoh bagaimana semua operator ini bekerja
>>> >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 4
Di sini, pertama-tama Anda menambahkan dua penghitung bersama-sama menggunakan operator penjumlahan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 35). Penghitung yang dihasilkan berisi kunci (elemen) yang sama, sedangkan nilainya masing-masing (kelipatan) menyimpan jumlah hitungan dari kedua penghitung yang terlibat
Contoh kedua menunjukkan cara kerja operator pengurangan (________18______36). Perhatikan bahwa hitungan negatif dan nol mengakibatkan tidak disertakannya pasangan hitungan kunci di penghitung yang dihasilkan. Jadi, Anda tidak melihat >>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _41 di keluaran karena 8 - 9 = -1
Operator persimpangan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _37) mengekstrak objek dengan jumlah lebih rendah dari kedua penghitung, sedangkan operator gabungan (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 38) mengembalikan objek dengan jumlah lebih tinggi dari kedua penghitung yang terlibat
Catatan. Untuk perincian lebih lanjut tentang bagaimana >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 menangani operasi aritmatika, lihat kelasnya
>>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 juga mendukung beberapa operasi unary. Misalnya, Anda bisa mendapatkan item dengan jumlah positif dan negatif menggunakan tanda plus (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 35) dan minus (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 36), masing-masing
>>> >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 5
Saat Anda menggunakan tanda tambah (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) _35) sebagai operator unary pada penghitung yang ada, Anda mendapatkan semua objek yang jumlahnya lebih besar dari nol. Di sisi lain, jika Anda menggunakan tanda minus (>>> from collections import defaultdict >>> word = "mississippi" >>> counter = defaultdict(int) >>> for letter in word: .. counter[letter] += 1 ... >>> counter defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) 36), Anda mendapatkan objek dengan jumlah negatif. Perhatikan bahwa hasilnya mengecualikan objek yang jumlahnya sama dengan nol dalam kedua kasus
Kesimpulan
Saat Anda perlu menghitung beberapa objek berulang dengan Python, Anda dapat menggunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 dari >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 7. Kelas ini menyediakan cara yang efisien dan Pythonic untuk menghitung sesuatu tanpa perlu menggunakan teknik tradisional yang melibatkan loop dan struktur data bersarang. Ini dapat membuat kode Anda lebih bersih dan lebih cepat
Dalam tutorial ini, Anda belajar caranya
- Hitung beberapa objek berulang menggunakan alat Python yang berbeda
- Buat penghitung cepat dan efisien dengan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 Python
- Ambil objek paling umum di penghitung tertentu
- Perbarui dan manipulasi jumlah objek
- Gunakan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) _6 untuk memfasilitasi perhitungan lebih lanjut
Anda juga mempelajari dasar-dasar penggunaan >>> from collections import Counter >>> # Use a string as an argument >>> Counter("mississippi") Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) >>> # Use a list as an argument >>> Counter(list("mississippi")) Counter({'i': 4, 's': 4, 'p': 2, 'm': 1}) 6 instance sebagai multiset. Dengan semua pengetahuan ini, Anda akan dapat dengan cepat menghitung objek dalam kode Anda dan juga melakukan operasi matematika dengan multiset
Tandai sebagai Selesai
Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Menghitung Dengan Penghitung Python
🐍 Trik Python 💌
Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python
Kirimi Saya Trik Python »
Tentang Leodanis Pozo Ramos
Leodanis adalah seorang insinyur industri yang menyukai Python dan pengembangan perangkat lunak. Dia adalah pengembang Python otodidak dengan pengalaman lebih dari 6 tahun. Dia adalah seorang penulis teknis yang rajin dengan semakin banyak artikel yang diterbitkan di Real Python dan situs lainnya
» Lebih lanjut tentang LeodanisSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah
Aldren
Bartosz
Daud
Joanna
Yakub
Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista
Tingkatkan Keterampilan Python Anda »
Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista
Tingkatkan Keterampilan Python Anda »
Bagaimana menurut anda?
Nilai artikel ini
Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari?
Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami