Truy cập mục python

Đếm nhiều đối tượng lặp lại cùng một lúc là một vấn đề phổ biến trong lập trình. Python cung cấp một loạt các công cụ và kỹ thuật mà bạn có thể sử dụng để giải quyết vấn đề này. Tuy nhiên,

>>> 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 của Python cung cấp một giải pháp rõ ràng, hiệu quả và Pythonic

Lớp con từ điển này cung cấp khả năng đếm hiệu quả vượt trội. Hiểu

>>> 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 và cách sử dụng nó hiệu quả là một kỹ năng tiện lợi cần có với tư cách là nhà phát triển Python

Trong hướng dẫn này, bạn sẽ học cách

  • Đếm nhiều đối tượng lặp đi lặp lại cùng một lúc
  • Tạo bộ đếm với
    >>> 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 của Python
  • Truy xuất các đối tượng phổ biến nhất trong bộ đếm
  • Cập nhật số lượng đối tượng
  • Sử dụng
    >>> 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 để tạo điều kiện cho các tính toán tiếp theo

Bạn cũng sẽ tìm hiểu về những điều cơ bản của việc sử dụng

>>> 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 dưới dạng nhiều bộ, đây là một tính năng bổ sung của lớp này trong Python

Tiền thưởng miễn phí. 5 Suy nghĩ về Làm chủ Python, một khóa học miễn phí dành cho các nhà phát triển Python cho bạn thấy lộ trình và tư duy mà bạn sẽ cần để đưa các kỹ năng Python của mình lên một tầm cao mới

Đếm đối tượng trong Python

Đôi khi bạn cần đếm các đối tượng trong một nguồn dữ liệu nhất định để biết tần suất chúng xuất hiện. Nói cách khác, bạn cần xác định tần suất của chúng. Ví dụ: bạn có thể muốn biết tần suất một mục cụ thể xuất hiện trong danh sách hoặc chuỗi giá trị. Khi danh sách của bạn ngắn, việc đếm các mục có thể đơn giản và nhanh chóng. Tuy nhiên, khi bạn có một danh sách dài, việc đếm mọi thứ có thể khó khăn hơn

Để đếm các đối tượng, bạn thường sử dụng bộ đếm có giá trị ban đầu bằng 0. Sau đó, bạn tăng bộ đếm để phản ánh số lần một đối tượng nhất định xuất hiện trong nguồn dữ liệu đầu vào

Khi bạn đang đếm số lần xuất hiện của một đối tượng, bạn có thể sử dụng một bộ đếm. Tuy nhiên, khi bạn cần đếm nhiều đối tượng khác nhau, bạn phải tạo bộ đếm bằng số đối tượng duy nhất mà bạn có.

Để đếm nhiều đối tượng khác nhau cùng một lúc, bạn có thể sử dụng từ điển Python. Các khóa từ điển sẽ lưu trữ các đối tượng bạn muốn đếm. Các giá trị từ điển sẽ chứa số lần lặp lại của một đối tượng nhất định hoặc số lượng của đối tượng

Ví dụ: để đếm các đối tượng trong một chuỗi bằng cách sử dụng từ điển, bạn có thể lặp lại chuỗi đó, kiểm tra xem đối tượng hiện tại không có trong từ điển hay không để khởi tạo bộ đếm [cặp khóa-giá trị], sau đó tăng số lượng của nó cho phù hợp

Đây là một ví dụ đếm các chữ cái trong từ “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}

Vòng lặp

>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
2 lặp qua các chữ cái trong
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
3. Trong mỗi lần lặp lại, câu lệnh có điều kiện sẽ kiểm tra xem chữ cái trong tay chưa phải là chìa khóa trong từ điển mà bạn đang sử dụng như
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
4. Nếu vậy, nó sẽ tạo một khóa mới với chữ cái và khởi tạo số đếm của nó bằng 0. Bước cuối cùng là tăng số đếm lên một. Khi bạn truy cập vào
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
4, bạn sẽ thấy rằng các chữ cái hoạt động như các khóa và các giá trị dưới dạng số đếm

Ghi chú. Khi bạn đang đếm một số đối tượng lặp lại bằng từ điển Python, hãy nhớ rằng chúng phải như vậy vì chúng sẽ hoạt động như các khóa từ điển. Có thể băm nghĩa là các đối tượng của bạn phải có giá trị băm không bao giờ thay đổi trong suốt vòng đời của chúng. Trong Python, các đối tượng cũng có thể băm được

Một cách khác để đếm các đối tượng bằng từ điển là sử dụng với ____6_______7 làm giá trị mặc định

>>>

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}

Khi bạn gọi

>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
8 theo cách này, bạn sẽ nhận được số lượng hiện tại của một số đã cho là ____6_______9 hoặc ____6_______7 [mặc định] nếu chữ cái bị thiếu. Sau đó, bạn tăng số đếm lên _______15_______1 và lưu nó dưới _____6_______9 tương ứng trong từ điển

Bạn cũng có thể sử dụng

>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
3 from để đếm các đối tượng trong một vòng lặp

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]

Giải pháp này ngắn gọn và dễ đọc hơn. Trước tiên, bạn khởi tạo

>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
4 bằng cách sử dụng
>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
3 với chức năng mặc định của nhà sản xuất. Bằng cách này, khi bạn truy cập một khóa không tồn tại trong
>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
3 bên dưới, từ điển sẽ tự động tạo khóa và khởi tạo khóa đó với giá trị mà hàm xuất xưởng trả về

Trong ví dụ này, vì bạn đang sử dụng

>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
7 làm chức năng xuất xưởng, nên giá trị ban đầu là
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
7, là kết quả của việc gọi
>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
7 mà không có đối số

Giống như nhiều tác vụ thường xuyên khác trong lập trình, Python cung cấp một cách tốt hơn để tiếp cận vấn đề đếm. Trong

>>> 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, bạn sẽ tìm thấy một lớp được thiết kế đặc biệt để đếm nhiều đối tượng khác nhau cùng một lúc. Lớp này được gọi một cách thuận tiện

Loại bỏ các quảng cáo

Bắt đầu với
>>> 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 của 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 là một lớp con của
>>> from collections import Counter

>>> Counter[set["mississippi"]]
Counter[{'p': 1, 's': 1, 'm': 1, 'i': 1}]
6 được thiết kế đặc biệt để đếm các đối tượng có thể băm trong Python. Đó là một từ điển lưu trữ các đối tượng dưới dạng khóa và được tính là giá trị. Để đếm với
>>> 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, bạn thường cung cấp một chuỗi hoặc các đối tượng có thể băm làm đối số cho hàm tạo của lớp

>>> 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 lặp lại nội bộ thông qua chuỗi đầu vào, đếm số lần một đối tượng nhất định xuất hiện và lưu trữ các đối tượng dưới dạng khóa và số đếm dưới dạng giá trị. Trong phần tiếp theo, bạn sẽ tìm hiểu về các cách khác nhau để xây dựng bộ đếm

Xây dựng quầy

Có một số cách để bạn tạo các phiên bản

>>> 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. Tuy nhiên, nếu mục tiêu của bạn là đếm nhiều đối tượng cùng một lúc, thì bạn cần sử dụng một trình tự hoặc có thể lặp lại để khởi tạo bộ đếm. Ví dụ: đây là cách bạn có thể viết lại ví dụ về Mississippi bằng cách sử dụng
>>> 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 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}]

>>> 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 lặp lại trên
>>> from collections import Counter

>>> inventory = Counter[
..     apple=10,
..     orange=15,
..     banana=0,
..     tomato=-15
.. ]
2 và tạo một từ điển với các chữ cái làm khóa và tần số của chúng làm giá trị. Trong ví dụ đầu tiên, bạn sử dụng một chuỗi làm đối số cho
>>> 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. Bạn cũng có thể sử dụng danh sách, bộ hoặc bất kỳ lần lặp nào với các đối tượng lặp lại, như bạn thấy trong ví dụ thứ hai

Ghi chú. Trong

>>> 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, tối ưu hóa cao cung cấp chức năng đếm. Nếu chức năng này không khả dụng vì lý do nào đó, thì lớp sẽ sử dụng chức năng tương đương nhưng kém hiệu quả hơn

Có nhiều cách khác để tạo các phiên bản

>>> 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. Tuy nhiên, chúng không hoàn toàn có nghĩa là đếm. Ví dụ: bạn có thể sử dụng từ điển chứa các khóa và số đếm như thế này

>>>

>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]

Bộ đếm hiện có một nhóm ban đầu gồm các cặp đếm khóa. Cách tạo một thể hiện

>>> 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 này rất hữu ích khi bạn cần cung cấp số lượng ban đầu của một nhóm đối tượng hiện có

Bạn cũng có thể tạo ra kết quả tương tự bằng cách sử dụng đối số từ khóa khi bạn gọi phương thức khởi tạo của lớp

>>>

>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]

Một lần nữa, bạn có thể sử dụng phương pháp này để tạo một đối tượng

>>> 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 với trạng thái ban đầu cụ thể cho các khóa và số cặp của nó

Trong thực tế, nếu bạn đang sử dụng

>>> 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 để đếm mọi thứ từ đầu, thì bạn không cần khởi tạo số đếm vì chúng có giá trị bằng 0 theo mặc định. Một khả năng khác có thể là khởi tạo số đếm thành
>>> from collections import Counter

>>> Counter[i=4, s=4, p=2, m=1]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
1. Trong trường hợp đó, bạn có thể làm một cái gì đó như thế này

>>>

>>> from collections import Counter

>>> Counter[set["mississippi"]]
Counter[{'p': 1, 's': 1, 'm': 1, 'i': 1}]

Các bộ Python lưu trữ các đối tượng duy nhất, vì vậy lệnh gọi tới

>>> 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 trong ví dụ này sẽ loại bỏ các chữ cái lặp lại. Sau này, bạn kết thúc với một phiên bản của mỗi chữ cái trong bản gốc có thể lặp lại

>>> 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 kế thừa giao diện của từ điển thông thường. Tuy nhiên, nó không cung cấp triển khai hoạt động của để ngăn chặn sự mơ hồ, chẳng hạn như
>>> 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. Trong ví dụ cụ thể này, mỗi chữ cái sẽ có số lượng mặc định là
>>> 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 mặc dù số lần xuất hiện hiện tại của nó trong đầu vào có thể lặp lại

Không có giới hạn nào đối với các đối tượng mà bạn có thể lưu trữ trong các khóa và giá trị của bộ đếm. Các khóa có thể lưu trữ các đối tượng có thể băm, trong khi các giá trị có thể lưu trữ bất kỳ đối tượng nào. Tuy nhiên, để hoạt động như bộ đếm, các giá trị phải là số nguyên đại diện cho số lượng

Đây là một ví dụ về một trường hợp

>>> 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 giữ số âm và số không

>>>

>>> from collections import Counter

>>> inventory = Counter[
..     apple=10,
..     orange=15,
..     banana=0,
..     tomato=-15
.. ]

Trong ví dụ này, bạn có thể hỏi, “Tại sao tôi có

>>> 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 quả cà chua?” . Ai biết?

Loại bỏ các quảng cáo

Cập nhật số lượng đối tượng

Khi bạn đã có một phiên bản

>>> 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, bạn có thể sử dụng
>>> 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 để cập nhật nó với các đối tượng và số lượng mới. Thay vì thay thế các giá trị như đối tác
>>> from collections import Counter

>>> Counter[set["mississippi"]]
Counter[{'p': 1, 's': 1, 'm': 1, 'i': 1}]
6 của nó, việc triển khai do
>>> 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 cung cấp sẽ cộng các số lượng hiện có lại với nhau. Nó cũng tạo ra các cặp số khóa mới khi cần thiết

Bạn có thể sử dụng

>>> 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 với cả iterables và ánh xạ của số lượng làm đối số. Nếu bạn sử dụng một lần lặp, phương thức sẽ đếm các mục của nó và cập nhật bộ đếm tương ứng

>>>

>>> 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}]

Bây giờ bạn có

>>> 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 phiên bản của
>>> 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 phiên bản của
>>> 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, v.v. Bạn cũng có một số cặp số lượng khóa mới, chẳng hạn như
>>> 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 và
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
01. Lưu ý rằng iterable cần phải là một chuỗi các mục chứ không phải là một chuỗi các cặp
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
02

Ghi chú. Như bạn đã biết, không có giới hạn nào đối với các giá trị [số lượng] mà bạn có thể lưu trữ trong bộ đếm

Sử dụng các đối tượng không phải là số nguyên để đếm sẽ phá vỡ các tính năng phổ biến của bộ đếm

>>>

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

Trong ví dụ này, số lượng chữ cái là các chuỗi thay vì các giá trị số nguyên. Điều này phá vỡ

>>> 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, dẫn đến một
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
04

Cách thứ hai để sử dụng

>>> 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 là cung cấp một bộ đếm khác hoặc ánh xạ các số đếm làm đối số. Trong trường hợp đó, bạn có thể làm một cái gì đó như thế này

>>>

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
0

Trong ví dụ đầu tiên, bạn cập nhật bộ đếm hiện có,

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
06, sử dụng một bộ đếm khác,
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
07. Lưu ý cách
>>> 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 cộng số đếm từ cả hai bộ đếm

Ghi chú. Bạn cũng có thể sử dụng

>>> 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 với các đối số từ khóa. Vì vậy, ví dụ, làm điều gì đó như
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
10 hoạt động giống như
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
11 trong ví dụ trên

Tiếp theo, bạn sử dụng một từ điển thông thường chứa các mục và số đếm. Trong trường hợp này,

>>> 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 thêm số lượng khóa hiện có và tạo các cặp số lượng khóa bị thiếu

Truy cập Nội dung của Bộ đếm

Như bạn đã biết,

>>> 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 có giao diện gần giống với
>>> from collections import Counter

>>> Counter[set["mississippi"]]
Counter[{'p': 1, 's': 1, 'm': 1, 'i': 1}]
6. Bạn có thể thực hiện các thao tác gần giống với bộ đếm như bạn có thể thực hiện với từ điển tiêu chuẩn. Ví dụ: bạn có thể truy cập các giá trị của chúng bằng cách sử dụng truy cập khóa giống như từ điển [
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
15]. Bạn cũng có thể lặp lại các khóa, giá trị và mục bằng các kỹ thuật và phương pháp thông thường

>>>

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
1

Trong các ví dụ này, bạn truy cập và lặp lại các khóa [chữ cái] và giá trị [số lượng] của bộ đếm bằng giao diện từ điển quen thuộc, bao gồm các phương pháp như

>>> 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 và
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
18

Ghi chú. Nếu bạn muốn tìm hiểu sâu hơn về cách lặp qua từ điển, hãy xem Cách lặp qua từ điển trong Python

Điểm cuối cùng cần lưu ý về

>>> 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 là nếu bạn cố truy cập vào một khóa bị thiếu, thì bạn sẽ nhận được số 0 thay vì
>>> 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

Vì chữ cái

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
21 không xuất hiện trong chuỗi
>>> from collections import Counter

>>> inventory = Counter[
..     apple=10,
..     orange=15,
..     banana=0,
..     tomato=-15
.. ]
2, nên bộ đếm trả về
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
7 khi bạn cố gắng truy cập số đếm cho chữ cái đó

Tìm các đối tượng phổ biến nhất

Nếu bạn cần liệt kê một nhóm đối tượng theo tần suất của chúng hoặc số lần chúng xuất hiện, thì bạn có thể sử dụng. Phương thức này trả về một danh sách

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
25 được sắp xếp theo số lượng hiện tại của đối tượng. Các đối tượng có số lượng bằng nhau xuất hiện theo thứ tự xuất hiện đầu tiên

Nếu bạn cung cấp một số nguyên

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
26 làm đối số cho
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24, thì bạn sẽ nhận được
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
26 đối tượng phổ biến nhất. Nếu bạn bỏ qua
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
26 hoặc đặt nó thành
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
30, thì
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24 sẽ trả về tất cả các đối tượng trong bộ đếm

>>>

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
3

Trong các ví dụ này, bạn sử dụng

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24 để truy xuất các đối tượng thường xuyên nhất trong
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
06. Không có đối số hoặc với
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
30, phương thức trả về tất cả các đối tượng. Nếu đối số của
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24 lớn hơn độ dài của bộ đếm hiện tại, thì bạn sẽ lấy lại được tất cả các đối tượng

Bạn cũng có thể nhận được các đối tượng ít phổ biến nhất bằng kết quả của

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

Lần cắt đầu tiên,

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
37, trả về tất cả các đối tượng trong
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
06 theo thứ tự ngược lại theo số lượng tương ứng của chúng. Việc cắt lát
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
39 trích xuất hai đối tượng cuối cùng từ kết quả của
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24. Bạn có thể điều chỉnh số lượng đối tượng ít phổ biến nhất mà bạn nhận được bằng cách thay đổi giá trị bù thứ hai trong toán tử cắt. Ví dụ: để lấy ba đối tượng ít xuất hiện nhất, bạn có thể thay đổi
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
41 thành
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
42, v.v.

Ghi chú. Kiểm tra Danh sách Python đảo ngược. Ngoại trừ. đảo ngược [] và đảo ngược [] để biết các ví dụ thực hành về cách sử dụng cú pháp cắt

Nếu bạn muốn

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24 hoạt động chính xác, hãy đảm bảo rằng các giá trị trong bộ đếm của bạn có thể sắp xếp được. Đây là điều cần lưu ý vì như đã đề cập, bạn có thể lưu trữ bất kỳ loại dữ liệu nào trong bộ đếm

Loại bỏ các quảng cáo

Đưa
>>> 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 vào hành động

Cho đến giờ, bạn đã học được những kiến ​​thức cơ bản về cách tạo và sử dụng các đối tượng

>>> 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 trong mã của mình. Bây giờ bạn đã biết cách đếm số lần mỗi đối tượng xuất hiện trong một trình tự nhất định hoặc có thể lặp lại. Bạn cũng biết cách

  • Tạo bộ đếm với các giá trị ban đầu
  • Cập nhật bộ đếm hiện có
  • Nhận các đối tượng thường xuyên nhất trong một bộ đếm nhất định

Trong các phần sau, bạn sẽ viết mã một số ví dụ thực tế để bạn có thể hiểu rõ hơn về mức độ hữu ích của

>>> 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 của Python

Đếm các chữ cái trong một tệp văn bản

Giả sử bạn có một tệp chứa một số văn bản. Bạn cần đếm số lần mỗi chữ cái xuất hiện trong văn bản. Ví dụ: giả sử bạn có một tệp tên là

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
47 với nội dung sau

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
5

Vâng, đây là The Zen of Python, một danh sách các nguyên tắc hướng dẫn xác định triết lý cốt lõi đằng sau thiết kế của Python. Để đếm số lần mỗi chữ cái xuất hiện trong văn bản này, bạn có thể tận dụng

>>> 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 và viết một hàm như thế này

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
6

Đây là cách mã này hoạt động

  • Dòng 5 định nghĩa
    >>> word = "mississippi"
    >>> counter = {}
    
    >>> for letter in word:
    ..     counter[letter] = counter.get[letter, 0] + 1
    ...
    
    >>> counter
    {'m': 1, 'i': 4, 's': 4, 'p': 2}
    
    49. Hàm này lấy đường dẫn tệp dựa trên chuỗi làm đối số
  • Dòng 6 tạo một bộ đếm trống để đếm các chữ cái trong văn bản đích
  • Dòng 7 mở tệp đầu vào để đọc và tạo một trình vòng lặp trên nội dung tệp
  • Dòng 8 bắt đầu một vòng lặp lặp qua từng dòng nội dung tệp
  • Dòng 9 đến 11 xác định cách hiểu danh sách để loại trừ các ký tự không phải chữ cái khỏi dòng hiện tại bằng cách sử dụng. Khả năng hiểu viết thường các chữ cái trước khi lọc chúng để tránh có số lượng chữ thường và chữ hoa riêng biệt
  • Dòng 12 gọi
    >>> 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 trên bộ đếm chữ cái để cập nhật số lượng của mỗi chữ cái

Để sử dụng

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
49, bạn có thể làm như thế này

>>>

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
7

Tuyệt vời. Mã của bạn đếm tần suất của mỗi chữ cái trong một tệp văn bản nhất định. Các nhà ngôn ngữ học thường sử dụng tần số chữ cái để nhận dạng ngôn ngữ. Ví dụ, trong tiếng Anh, các nghiên cứu về tần số xuất hiện trung bình của các chữ cái đã tiết lộ rằng năm chữ cái phổ biến nhất là “e,” “t,” “a,” “o,” và “i. " Ồ. Điều đó gần như phù hợp với kết quả của bạn

Vẽ dữ liệu phân loại với biểu đồ thanh ASCII

Thống kê là một lĩnh vực khác mà bạn có thể sử dụng

>>> 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. Ví dụ: khi bạn đang làm việc với dữ liệu phân loại, bạn có thể muốn tạo biểu đồ thanh để trực quan hóa số lượng quan sát trên mỗi danh mục. Biểu đồ thanh đặc biệt tiện dụng để vẽ loại dữ liệu này

Bây giờ, giả sử bạn muốn tạo một chức năng cho phép bạn tạo biểu đồ thanh ASCII trên thiết bị đầu cuối của mình. Để làm điều đó, bạn có thể sử dụng đoạn mã sau

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
8

Trong ví dụ này,

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
54 lấy một số phân loại
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
55, đếm số lần mỗi danh mục duy nhất xuất hiện trong dữ liệu [
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
56] và tạo biểu đồ thanh ASCII phản ánh tần suất đó

Đây là cách bạn có thể sử dụng chức năng này

>>>

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
9

Cuộc gọi đầu tiên đến

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
54 biểu thị tần suất của từng chữ cái trong chuỗi đầu vào. Cuộc gọi thứ hai âm mưu bán hàng trên mỗi quả. Trong trường hợp này, bạn sử dụng bộ đếm làm đầu vào. Ngoài ra, lưu ý rằng bạn có thể sử dụng
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
58 để thay đổi ký tự cho các thanh

Ghi chú. Trong ví dụ trên,

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
54 không chuẩn hóa các giá trị của
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
56 khi nó vẽ biểu đồ. Nếu bạn sử dụng dữ liệu có giá trị
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
56 cao, thì màn hình của bạn sẽ giống như một mớ ký hiệu hỗn độn

Khi bạn đang tạo biểu đồ thanh, việc sử dụng các thanh ngang cho phép bạn có đủ chỗ cho các nhãn danh mục. Một tính năng hữu ích khác của biểu đồ thanh là khả năng sắp xếp dữ liệu theo tần suất của chúng. Trong ví dụ này, bạn sắp xếp dữ liệu bằng cách sử dụng

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24

Loại bỏ các quảng cáo

Vẽ dữ liệu phân loại với Matplotlib

Thật tuyệt khi biết cách tạo biểu đồ thanh ASCII từ đầu bằng Python. Tuy nhiên, trong hệ sinh thái Python, bạn có thể tìm thấy một số công cụ để vẽ dữ liệu. Một trong những công cụ đó là Matplotlib

Matplotlib là thư viện của bên thứ ba để tạo trực quan hóa tĩnh, hoạt hình và tương tác trong Python. Bạn có thể cài đặt thư viện từ PyPI bằng cách sử dụng

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
63 như bình thường

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
0

Lệnh này cài đặt Matplotlib trong môi trường Python của bạn. Khi bạn đã cài đặt thư viện, bạn có thể sử dụng nó để tạo biểu đồ thanh của mình và hơn thế nữa. Đây là cách bạn có thể tạo biểu đồ thanh tối thiểu với Matplotlib

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
1

Tại đây, trước tiên bạn thực hiện các thao tác nhập bắt buộc. Sau đó, bạn tạo một bộ đếm với một số dữ liệu ban đầu về doanh số bán trái cây và sử dụng

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24 để sắp xếp dữ liệu

Bạn sử dụng

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
65 để giải nén nội dung của
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
06 thành hai biến

  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 giữ một danh sách các loại trái cây
  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 nắm giữ số đơn vị tương ứng được bán trên mỗi quả

Sau đó, bạn tạo biểu đồ thanh bằng cách sử dụng. Khi bạn chạy, bạn sẽ nhận được một cửa sổ như sau trên màn hình của mình

Trong biểu đồ này, trục ngang hiển thị tên của từng loại trái cây duy nhất. Trong khi đó, trục tung biểu thị số đơn vị bán ra trên một quả

Tìm Chế độ của một Mẫu

Trong thống kê, chế độ là giá trị [hoặc các giá trị] thường xuyên nhất trong một mẫu dữ liệu. Ví dụ: nếu bạn có mẫu

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
71, thì chế độ là
>>> 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 vì mẫu này xuất hiện thường xuyên nhất

Trong một số trường hợp, chế độ không phải là một giá trị duy nhất. Xem xét mẫu

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
73. Ở đây bạn có hai chế độ,
>>> 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 và
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
75, vì cả hai đều xuất hiện cùng một số lần

Bạn sẽ thường sử dụng chế độ này để mô tả dữ liệu phân loại. Ví dụ: chế độ này hữu ích khi bạn cần biết danh mục nào phổ biến nhất trong dữ liệu của mình

Để tìm chế độ với Python, bạn cần đếm số lần xuất hiện của từng giá trị trong mẫu của mình. Sau đó, bạn phải tìm giá trị [hoặc giá trị] thường xuyên nhất. Nói cách khác, giá trị có số lần xuất hiện cao nhất. Điều đó nghe có vẻ như bạn có thể làm bằng cách sử dụng

>>> 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 và
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24

Ghi chú. Mô-đun của Python trong thư viện chuẩn cung cấp các hàm để tính toán một số thống kê, bao gồm chế độ và mẫu. Ví dụ dưới đây chỉ nhằm mục đích cho thấy

>>> 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 có thể hữu ích như thế nào

Đây là một hàm tính toán chế độ của một mẫu

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
2

Bên trong

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
80, trước tiên bạn đếm số lần mỗi quan sát xuất hiện trong đầu vào
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
55. Sau đó, bạn sử dụng
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
82 để biết tần suất quan sát phổ biến nhất. Vì
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
24 trả về một danh sách các bộ dữ liệu ở dạng
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
84, nên bạn cần truy xuất bộ dữ liệu tại chỉ mục
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
7, đây là bộ phổ biến nhất trong danh sách. Sau đó, bạn giải nén bộ dữ liệu thành hai biến

  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 giữ đối tượng phổ biến nhất. Sử dụng dấu gạch dưới để đặt tên cho một biến cho thấy rằng bạn không cần sử dụng biến đó trong mã của mình, nhưng bạn cần biến đó như một trình giữ chỗ
  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 nắm giữ tần suất của đối tượng phổ biến nhất trong
    >>> word = "mississippi"
    >>> counter = {}
    
    >>> for letter in word:
    ..     counter[letter] = counter.get[letter, 0] + 1
    ...
    
    >>> counter
    {'m': 1, 'i': 4, 's': 4, 'p': 2}
    
    55

Việc hiểu danh sách so sánh

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
89 của mỗi đối tượng với số lượng của đối tượng phổ biến nhất,
>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
87. Điều này cho phép bạn xác định nhiều chế độ trong một mẫu nhất định

Để sử dụng chức năng này, bạn có thể làm một cái gì đó như thế này

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'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 tác phẩm của bạn. Nó tìm thấy chế độ của dữ liệu số và phân loại. Nó cũng hoạt động với các mẫu đơn chế độ và đa chế độ. Hầu hết thời gian, dữ liệu của bạn sẽ có một chuỗi các giá trị. Tuy nhiên, ví dụ cuối cùng cho thấy bạn cũng có thể sử dụng bộ đếm để cung cấp dữ liệu đầu vào

Loại bỏ các quảng cáo

Đếm tệp theo loại

Một ví dụ thú vị khác liên quan đến

>>> 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 là đếm các tệp trong một thư mục nhất định, nhóm chúng theo phần mở rộng tệp hoặc loại tệp. Để làm được điều đó, bạn có thể tận dụng
>>> 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[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
4

Trong ví dụ này, trước tiên bạn tạo một trình vòng lặp trên các mục trong một thư mục nhất định bằng cách sử dụng. Sau đó, bạn sử dụng khả năng hiểu danh sách để tạo danh sách chứa các phần mở rộng [] của tất cả các tệp trong thư mục đích. Cuối cùng, bạn đếm số lượng tệp sử dụng phần mở rộng tệp làm tiêu chí nhóm

Nếu bạn chạy mã này trên máy tính của mình, thì bạn sẽ nhận được một kết quả khác tùy thuộc vào nội dung của thư mục

>>> word = "mississippi"
>>> counter = {}

>>> for letter in word:
..     counter[letter] = counter.get[letter, 0] + 1
...

>>> counter
{'m': 1, 'i': 4, 's': 4, 'p': 2}
96 của bạn, nếu nó tồn tại. Vì vậy, có thể bạn sẽ cần sử dụng một thư mục đầu vào khác để mã này hoạt động

Sử dụng các trường hợp
>>> 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 dưới dạng nhiều bộ

Trong toán học, một tập hợp nhiều đại diện cho một biến thể của một tập hợp cho phép nhiều phiên bản của các phần tử của nó. Số lượng thể hiện của một phần tử đã cho được gọi là bội số của nó. Vì vậy, bạn có thể có nhiều bộ như {1, 1, 2, 3, 3, 3, 4, 4}, nhưng phiên bản bộ sẽ bị giới hạn ở {1, 2, 3, 4}

Cũng giống như trong toán học, các bộ Python thông thường chỉ cho phép các phần tử duy nhất

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
5

Khi bạn tạo một tập hợp như thế này, Python sẽ loại bỏ tất cả các trường hợp lặp lại của mỗi số. Kết quả là, bạn nhận được một tập hợp chỉ có các phần tử duy nhất

Python hỗ trợ khái niệm multisets với

>>> 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. Các khóa trong trường hợp
>>> 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 là duy nhất, vì vậy chúng tương đương với một bộ. Số lượng giữ bội số hoặc số lượng phiên bản của mỗi phần tử

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
6

Tại đây, trước tiên bạn tạo một bộ nhiều lớp bằng cách sử dụng

>>> 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. Các phím tương đương với bộ bạn đã thấy trong ví dụ trên. Các giá trị giữ bội số của từng phần tử trong tập hợp

>>> 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 thực hiện một loạt các tính năng đa bộ mà bạn có thể sử dụng để giải quyết một số vấn đề. Trường hợp sử dụng phổ biến cho nhiều bộ trong lập trình là giỏ hàng vì nó có thể chứa nhiều phiên bản của mỗi sản phẩm, tùy thuộc vào nhu cầu của khách hàng

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
7

Trong ví dụ này, bạn tạo một giỏ mua hàng bằng cách sử dụng đối tượng

>>> 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 dưới dạng nhiều bộ. Bộ đếm cung cấp thông tin về đơn đặt hàng của khách hàng, bao gồm một số tài nguyên học tập. Vòng lặp
>>> from collections import Counter

>>> Counter[{"i": 4, "s": 4, "p": 2, "m": 1}]
Counter[{'i': 4, 's': 4, 'p': 2, 'm': 1}]
2 lặp qua bộ đếm và tính toán
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
04 cho mỗi
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
05 và in nó ra màn hình của bạn

Để củng cố kiến ​​thức của bạn về cách sử dụng

>>> 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 đối tượng dưới dạng nhiều bộ, bạn có thể mở rộng hộp bên dưới và hoàn thành bài tập. Khi bạn hoàn thành, hãy mở rộng hộp giải pháp để so sánh kết quả của bạn

Tập thể dục. Tính tổng số tiền phải trảHiển thị/Ẩn

Như một bài tập, bạn có thể sửa đổi ví dụ trên để tính tổng số tiền phải trả khi thanh toán

Giải pháp. Tính tổng số tiền phải trảHiển thị/Ẩn

Đây là một giải pháp khả thi

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
8

Trong dòng được đánh dấu đầu tiên, bạn thêm một biến mới để giữ tổng chi phí của tất cả các sản phẩm bạn đã đặt hàng. Trong dòng được đánh dấu thứ hai, bạn sử dụng an để tích lũy mỗi

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
04 trong
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
08

Bây giờ bạn đã có ý tưởng về multiset là gì và Python triển khai chúng như thế nào, bạn có thể xem qua một số tính năng multiset mà

>>> 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 cung cấp

Loại bỏ các quảng cáo

Khôi phục các phần tử từ bộ đếm

Tính năng nhiều bộ đầu tiên của

>>> 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 mà bạn sắp tìm hiểu là. Phương thức này trả về một iterator trên các phần tử trong một multiset [_______0_______6 instance], lặp lại mỗi phần tử nhiều lần như số lượng của nó cho biết

>>>

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
9

Hiệu quả ròng của việc gọi

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
11 trên bộ đếm là khôi phục dữ liệu ban đầu mà bạn đã sử dụng để tạo bộ đếm. Phương thức này trả về các phần tử—các chữ cái trong ví dụ này—theo cùng thứ tự chúng xuất hiện lần đầu trong bộ đếm bên dưới. Kể từ 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 nhớ thứ tự chèn các phím của nó như một tính năng kế thừa từ
>>> from collections import Counter

>>> Counter[set["mississippi"]]
Counter[{'p': 1, 's': 1, 'm': 1, 'i': 1}]
6

Ghi chú. Như bạn đã biết, bạn có thể tạo bộ đếm với số không và số âm. Nếu số đếm của một phần tử nhỏ hơn một, thì

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
11 bỏ qua nó

Chuỗi tài liệu của

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
11 trong cung cấp một ví dụ thú vị về việc sử dụng phương pháp này để tính toán một số từ. Vì một thừa số nguyên tố nhất định có thể xảy ra nhiều lần, nên bạn có thể kết thúc với một thừa số nguyên tố. Ví dụ: bạn có thể biểu thị số 1836 dưới dạng tích các thừa số nguyên tố của nó như thế này

1836 = 2 × 2 × 3 × 3 × 3 × 17 = 22 × 33 × 171

Bạn có thể viết biểu thức này dưới dạng nhiều tập hợp như {2, 2, 3, 3, 3, 17}. Sử dụng

>>> 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 của Python, bạn sẽ có
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
19. Khi bạn đã có bộ đếm này, bạn có thể tính số ban đầu bằng các thừa số nguyên tố của nó

>>>

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

Vòng lặp lặp lại các phần tử trong

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
20 và nhân chúng để tính số ban đầu,
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
21. Nếu bạn đang sử dụng Python 3. 8 trở lên, thì bạn có thể sử dụng from
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
23 để có kết quả tương tự. Hàm này tính tích của tất cả các phần tử trong đầu vào có thể lặp lại

>>>

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

Trong ví dụ này, lệnh gọi tới

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
11 khôi phục các thừa số nguyên tố. Sau đó,
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
25 tính toán
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
21 từ chúng trong một lần, điều này giúp bạn không phải viết một vòng lặp và không có một vài biến trung gian

Sử dụng

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
11 cung cấp cách khôi phục dữ liệu đầu vào ban đầu. Hạn chế duy nhất của nó là trong hầu hết các trường hợp, thứ tự của các mục trong đầu vào sẽ không khớp với thứ tự trong đầu ra

>>>

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

Trong ví dụ này, chuỗi kết quả không đánh vần từ gốc,

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
28. Tuy nhiên, nó có nội dung giống nhau về mặt chữ cái.

Trừ bội số của các yếu tố

Đôi khi bạn cần trừ bội số [số lượng] của các phần tử trong nhiều bộ hoặc bộ đếm. Trong trường hợp đó, bạn có thể sử dụng

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
29. Đúng như tên gọi của nó, phương thức này trừ đi số lượng được cung cấp trong một lần lặp hoặc ánh xạ khỏi số lượng trong bộ đếm mục tiêu

Giả sử bạn có nhiều bộ với kho trái cây hiện tại của mình và bạn cần cập nhật nó. Sau đó, bạn có thể chạy một số thao tác sau

>>>

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

Tại đây, bạn sử dụng một số cách để cung cấp dữ liệu đầu vào cho

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
29. Trong mọi trường hợp, bạn cập nhật số lượng của từng đối tượng duy nhất bằng cách trừ đi số lượng được cung cấp trong dữ liệu đầu vào. Bạn có thể coi
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
29 là đối trọng của
>>> 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

Loại bỏ các quảng cáo

Thực hiện số học với bội số của các phần tử

Với

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
29 và
>>> 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, bạn có thể kết hợp các bộ đếm bằng cách trừ và cộng các số phần tử tương ứng. Ngoài ra, Python cung cấp các toán tử tiện dụng để cộng [
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
35] và trừ [
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
36] số lượng phần tử, cũng như các toán tử cho giao điểm [
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
37] và hợp [
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
38]. Toán tử giao nhau trả về số lượng tối thiểu tương ứng, trong khi toán tử hợp trả về số lượng tối đa

Dưới đây là một vài ví dụ về cách thức hoạt động của tất cả các toán tử này

>>>

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

Ở đây, trước tiên bạn cộng hai bộ đếm lại với nhau bằng toán tử cộng [

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
35]. Bộ đếm kết quả chứa các khóa [phần tử] giống nhau, trong khi các giá trị tương ứng của chúng [bội số] giữ tổng số đếm từ cả hai bộ đếm liên quan

Ví dụ thứ hai cho thấy cách hoạt động của toán tử trừ [

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
36]. Lưu ý rằng số âm và số 0 dẫn đến việc không bao gồm cặp số khóa trong bộ đếm kết quả. Vì vậy, bạn không thấy
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
41 trong kết quả vì 8 - 9 = -1

Toán tử giao nhau [

>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
37] trích xuất các đối tượng có số đếm thấp hơn từ cả hai bộ đếm, trong khi toán tử hợp [
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
38] trả về các đối tượng có số đếm cao hơn từ cả hai bộ đếm liên quan

Ghi chú. Để biết thêm chi tiết về cách

>>> 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 xử lý các phép tính số học, hãy xem lớp

>>> 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 cũng hỗ trợ một số hoạt động đơn nguyên. Ví dụ: bạn có thể lấy các mục có số đếm dương và âm bằng cách sử dụng các dấu cộng [
>>> from collections import defaultdict

>>> word = "mississippi"
>>> counter = defaultdict[int]

>>> for letter in word:
..     counter[letter] += 1
...

>>> counter
defaultdict[, {'m': 1, 'i': 4, 's': 4, 'p': 2}]
35] và dấu trừ [_______18_______36] tương ứng

>>>

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

Khi bạn sử dụng dấu cộng [_______18_______35] làm toán tử một ngôi trên bộ đếm hiện có, bạn sẽ nhận được tất cả các đối tượng có số đếm lớn hơn 0. Mặt khác, nếu bạn sử dụng dấu trừ [_______18_______36], bạn sẽ nhận được các đồ vật có số âm. Lưu ý rằng kết quả loại trừ các đối tượng có số lượng bằng 0 trong cả hai trường hợp

Phần kết luận

Khi bạn cần đếm một số đối tượng lặp lại trong Python, bạn có thể sử dụng

>>> 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 từ
>>> 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. Lớp này cung cấp một cách hiệu quả và Pythonic để đếm mọi thứ mà không cần sử dụng các kỹ thuật truyền thống liên quan đến vòng lặp và cấu trúc dữ liệu lồng nhau. Điều này có thể làm cho mã của bạn sạch hơn và nhanh hơn

Trong hướng dẫn này, bạn đã học cách

  • Đếm một số đối tượng lặp lại bằng các công cụ Python khác nhau
  • Tạo bộ đếm nhanh và hiệu quả với
    >>> 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 của Python
  • Truy xuất các đối tượng phổ biến nhất trong một bộ đếm cụ thể
  • Cập nhật và thao tác đếm đối tượng
  • Sử dụng
    >>> 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 để tạo điều kiện cho các tính toán tiếp theo

Bạn cũng đã học những kiến ​​thức cơ bản về cách sử dụng các phiên bản

>>> 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 dưới dạng nhiều bộ. Với tất cả kiến ​​thức này, bạn sẽ có thể nhanh chóng đếm các đối tượng trong mã của mình và cũng có thể thực hiện các phép toán với nhiều bộ

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Đếm bằng bộ đếm của Python

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Leodanis Pozo Ramos

Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác

» Tìm hiểu thêm về Leodanis

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Bartosz

David

Joanna

Gia-cốp

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chủ Đề