Bagaimana Anda menghitung input dengan python?

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 3

Flow chart

Bagaimana Anda menghitung input dengan python?

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 Keras

Uji 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 iklan

Memulai 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 iklan

Memperbarui 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 iklan

Menempatkan >>> 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 iklan

Merencanakan 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

  1. >>> 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
  2. >>> 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

Bagaimana Anda menghitung input dengan python?

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

  1. >>> 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
  2. >>> 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 iklan

Menghitung 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 iklan

Memulihkan 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 iklan

Mengerjakan 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

Bagaimana Anda menghitung input dengan python?

Kirimi Saya Trik Python »

Tentang Leodanis Pozo Ramos

Bagaimana Anda menghitung input dengan python?
Bagaimana Anda menghitung input dengan python?

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 Leodanis


Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah

Bagaimana Anda menghitung input dengan python?

Aldren

Bagaimana Anda menghitung input dengan python?

Bartosz

Bagaimana Anda menghitung input dengan python?

Daud

Bagaimana Anda menghitung input dengan python?

Joanna

Bagaimana Anda menghitung input dengan python?

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 Email

Apa 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

Bagaimana Anda menghitung berapa kali input pengguna dengan Python?

Metode hitungan String Python () .

Bagaimana Anda mengatur jumlah input dengan Python?

kemudian, gunakan kode di bawah ini. n = int(input()) # Jumlah elemen Daftar = daftar ( map ( int, input(). membelah(" ") ) )
Mengambil input yang dipisahkan ruang sebagai daftar bilangan bulat. .
Jika Anda menginginkannya sebagai Daftar string, gunakan. daftar = daftar(input(). membelah(" ") )

Bagaimana Anda menghitung sampel dengan Python?

Count() adalah fungsi bawaan di Python. Ini akan mengembalikan Anda jumlah elemen yang diberikan dalam daftar atau string. Dalam kasus daftar, elemen yang akan dihitung harus diberikan ke fungsi count(), dan ini akan mengembalikan jumlah elemen. Metode count() mengembalikan nilai integer.