Bộ đếm có phải là Hashmap trong Python không?

Lớp bộ đếm là một loại tập dữ liệu đối tượng đặc biệt được cung cấp cùng với mô-đun bộ sưu tập trong Python3. Mô-đun bộ sưu tập cung cấp cho người dùng các kiểu dữ liệu vùng chứa chuyên biệt, do đó, cung cấp một giải pháp thay thế cho các mục đích chung tích hợp sẵn của Python như từ điển, danh sách và bộ dữ liệu.  

Counter là một lớp con được sử dụng để đếm các đối tượng có thể băm. Nó ngầm tạo một bảng băm của một iterable khi được gọi

các phần tử [] là một trong các chức năng của lớp Counter, khi được gọi trên đối tượng Counter sẽ trả về một itertool của tất cả các phần tử đã biết trong đối tượng Counter

Thông số. Không nhận bất kỳ tham số nào
Kiểu trả về. Trả về một công cụ lặp cho tất cả các phần tử có số dương trong đối tượng Bộ đếm
Lỗi và Ngoại lệ.
-> Nó sẽ in giá trị rác khi được in trực tiếp vì nó trả về một itertool, không phải một vùng chứa dữ liệu cụ thể.
-> Nếu số đếm của một mục đã được khởi tạo trong đối tượng Counter, thì nó sẽ bỏ qua những mục có giá trị bằng 0 và âm.
 

Mã số 1. Hoạt động của các phần tử [] trên một vùng chứa dữ liệu đơn giản

Python3




g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
1

g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
3
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
4
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
5

 

g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
6

g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
0

g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
1
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
84
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
39
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
87
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
43
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
37
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
43
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
93
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
34
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
96
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
03
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
40
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
601
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
43
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
2
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
604
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
43
g g e e e e k k s s f o r 
geeks geeks geeks geeks for gfg gfg python python python 
1 2 2 21 21 12 44 5 5 5 13 15 19 
a a b b b c c c c c c d e e e e e 
5

Một lớp con của Python dict được gọi là bộ đếm. Nó là một bộ sưu tập không có thứ tự hoặc chưa được sắp xếp, trong đó các phần tử được giữ dưới dạng khóa dict và được tính là giá trị Dict. Số đếm của phần tử bộ đếm có thể là một số nguyên bằng 0, âm hoặc dương. Tuy nhiên, các khóa và giá trị của nó không bị hạn chế. Mặc dù các giá trị được coi là số, chúng ta cũng có thể lưu trữ các đối tượng khác

Tại sao lại sử dụng Bộ đếm?

Tương tự như đối tượng hashtable, Counter lưu trữ dữ liệu dưới dạng tập hợp không có thứ tự. Các mục của danh sách có thể lặp lại có thể được tính bằng phương pháp này. Bộ đếm giúp đơn giản hóa việc thực hiện các phép toán số học như cộng, giao, trừ và hợp. Các phần tử của bộ đếm khác cũng có thể được đếm bởi bộ đếm

Cách tạo đối tượng bộ đếm

Đầu tiên, hãy tạo một đối tượng bộ đếm trống hoặc giả. Lớp “bộ đếm” trước tiên phải được nhập từ mô-đun “bộ sưu tập”. Sau đó, chúng ta có thể tạo đối tượng

Hãy xem xét một số đặc điểm của đối tượng truy cập mà chúng ta vừa tạo. Chẳng hạn, chúng ta có thể sử dụng phương thức type[] để xác định kiểu của nó. Ngoài ra, chúng tôi có thể xác nhận rằng đối tượng bộ đếm của chúng tôi là lớp con của từ điển Python

Bây giờ bạn đã quen thuộc với lớp Counter, hãy bắt đầu bằng cách tạo đối tượng Counter đầu tiên của chúng ta [không trống]

Bộ đếm với đối tượng chuỗi

Một chuỗi được chuyển đến Counter trong ví dụ sau. Kết quả là một từ điển ở định dạng cặp khóa/giá trị trong đó khóa đại diện cho phần tử và giá trị đại diện cho số lượng. Số lượng khoảng trắng trong chuỗi của chúng tôi cũng được tính là một phần tử

Số lượng các mục trong chuỗi của chúng tôi được trả về bởi bộ đếm. Các mục được sắp xếp theo tần suất mỗi mục xuất hiện trong đối tượng. Chúng ta có thể thấy rằng chuỗi của chúng ta chứa khoảng trắng và chữ cái “o” hai lần, v.v.

Bộ đếm với đối tượng danh sách

Một đối tượng có thể lặp lại với các phần tử được đặt trong dấu ngoặc vuông là một danh sách. Khi Bộ đếm được cung cấp một danh sách các phần tử, các phần tử đó được chuyển đổi thành các đối tượng có thể băm trong đó các khóa là các phần tử của danh sách và các giá trị là số lượng của chúng

Bộ đếm với đối tượng Dict

Các phần tử của từ điển được lưu trữ trong dấu ngoặc nhọn và được biểu diễn dưới dạng cặp khóa/giá trị. Ngay sau khi từ điển được chuyển đến Bộ đếm, nó sẽ được chuyển đổi thành một đối tượng có thể băm trong đó các mục đóng vai trò là khóa và các giá trị là số phần tử trong từ điển

Bộ đếm với đối tượng Tuple

Bộ dữ liệu là một tập hợp các thứ được đặt trong dấu ngoặc tròn được phân tách bằng dấu phẩy. Bộ đếm cung cấp cho bạn số lượng phần tử trong bộ được chỉ định. Bộ dữ liệu được chuyển đổi thành một đối tượng có thể băm sau khi nó được chuyển đến Bộ đếm, với các phần tử đóng vai trò là khóa và các giá trị là số lượng mục trong bộ dữ liệu đã cho

Truy cập các giá trị truy cập

Vì một lớp con của một dict được trả về bởi đối tượng Counter, nên có thể sử dụng hàm từ điển để lấy số lượng của một mục trong từ điển đó. Sử dụng Bộ đếm, chúng tôi có thể tìm hiểu xem có bao nhiêu trường hợp của một chữ cái cụ thể trong chuỗi của chúng tôi

Có thể thấy, chuỗi của chúng ta có hai trường hợp của chữ “o” và “a”. Ngay cả số lượng đối tượng không có trong đối tượng của chúng tôi cũng có thể được truy cập. Tuy nhiên, 0 được trả về dưới dạng đầu ra

Điều này dẫn đến lỗi KeyError trong từ điển Python chuẩn. Tuy nhiên, điều này tránh được bởi lớp Counter ghi đè hành vi mặc định

Tìm các mục phổ biến nhất

Bạn có thể sử dụng hàm most_common[] để lấy danh sách với một nhóm các mục theo tần suất chúng xuất hiện/xảy ra. Hàm này trả về một đối tượng danh sách gồm [các mặt hàng, số lượng] được sắp xếp theo số lượng mặt hàng. Các đối tượng đếm bằng nhau được trình bày theo thứ tự xuất hiện ban đầu của chúng. Các mục phổ biến nhất “n” được trả về nếu bạn chuyển một giá trị số nguyên “n” làm đầu vào cho phương thức most_common[]. Tất cả các đối tượng/mục trong bộ đếm được trả về bởi most_common[] nếu n để trống hoặc được đặt thành Không có

Một danh sách các bộ dữ liệu được trả về được sắp xếp theo tần suất xuất hiện của chúng

Nhập giá trị chỉ mục vào hàm most_comon[] cho phép chúng ta tìm sự xuất hiện của một mục tại một chỉ mục đã chỉ định

Tương tự, bằng cách lấy chỉ mục cuối cùng hoặc bằng cách chuyển chỉ mục thành -1, chúng ta có thể tìm thấy mục ít phổ biến nhất

Bây giờ, để tìm n đối tượng xảy ra nhiều nhất, giả sử 3 đối tượng xảy ra nhiều nhất, chúng ta có thể truyền một giá trị liên 3 bên trong hàm most_common[]

Cập nhật giá trị bộ đếm

Các giá trị trong bộ đếm cũng có thể được sửa đổi, đây là một trong những tính năng tuyệt vời của Bộ đếm Python. Phương thức update[] có thể được sử dụng để thực hiện điều này. Phương thức cập nhật các giá trị hiện có nếu nó nhận được một lần lặp khác

Hãy xem cách chúng ta có thể sử dụng lớp Counter của bộ sưu tập để đếm các mục trước và sau đó chuyển một lần lặp khác cho hàm update[] để cập nhật số lượng

Có thể thấy, các giá trị được cập nhật tại chỗ và được đếm bởi bộ đếm

Xóa giá trị bộ đếm

Xóa một vật phẩm/đối tượng khỏi bộ đếm cũng rất đơn giản. Khi bạn cần xóa thứ gì đó khỏi bộ đếm hoặc chỉ cần đặt lại một giá trị, điều này có thể hữu ích. Từ khóa “del” có thể được sử dụng để xóa một mục khỏi đối tượng truy cập

Các phép toán số học trên các giá trị/đối tượng của bộ đếm

Áp dụng các phép tính cộng trừ số học cho đối tượng rất đơn giản. Điều này giúp chúng tôi kết hợp các đối tượng Counter và xác định sự khác biệt giữa các mục. Các phép toán cộng và trừ có thể được thực hiện bằng cách sử dụng các toán tử + và - tương ứng. Trước tiên hãy xem phần bổ sung

Bây giờ, chúng tôi trừ các quầy

Kết hợp các đối tượng truy cập

Và ". Các toán tử ” cũng có thể được sử dụng để kết hợp các đối tượng Counter. Các toán tử này thực hiện các chức năng khác nhau. Các giá trị tối thiểu dương chung được trả về bởi toán tử “&”. Các giá trị lớn nhất [dương] được trả về bởi “. " nhà điều hành

Trước tiên hãy sử dụng toán tử &

Hãy kiểm tra mức tối đa giữa các đối tượng Counter

Tìm từ phổ biến nhất/xảy ra từ một chuỗi

Để xác định từ xuất hiện nhiều nhất trong một chuỗi, chúng ta có thể đếm các từ bằng lớp Counter của Python. Để tìm từ xuất hiện thường xuyên nhất trong một chuỗi, trước tiên chúng ta tải hoặc xác định một chuỗi. Chuỗi phải được tách ra trước khi được chuyển đến lớp Counter. Hàm split[] cho phép chúng ta tách hoặc chia ở bất kỳ khoảng trắng hoặc ký tự dòng mới nào. Từ xuất hiện nhiều nhất sau đó được truy cập bằng cách chỉ định chỉ mục [0][0] trong phương thức most_common[]

Từ “Python” được trả về dưới dạng đầu ra, điều đó có nghĩa là Python là từ xuất hiện nhiều nhất trong chuỗi được cung cấp

Phần kết luận

Trong hướng dẫn này, chúng tôi đã cố gắng hướng dẫn cách sử dụng lớp Counter của bộ sưu tập trong Python. Chúng tôi bắt đầu bằng cách dạy cách tạo số đếm cho một đối tượng có thể lặp lại bằng cách sử dụng lớp “bộ đếm”. Sau đó, chúng tôi đã giải thích cách tính số lượng mục cũng như cách xác định mục nào xuất hiện nhiều nhất và ít nhất. Chúng ta cũng đã thảo luận về cách cập nhật số lượng và cách chúng tôi có thể thực hiện các phép tính số học trên các mục được đếm

Bộ đếm có thể băm Python không?

Counter là một lớp con của dict đượ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 Counter , bạn thường cung cấp một chuỗi hoặc có thể lặp lại các đối tượng có thể băm làm đối số cho hàm tạo của lớp.

Thư viện nào là bộ đếm trong Python?

Counter là lớp con dict dùng để đếm các đối tượng có thể băm . Nó là một bộ sưu tập nơi các phần tử được lưu trữ dưới dạng khóa từ điển và số lượng của chúng được lưu trữ dưới dạng giá trị từ điển.

Bộ đếm có trong thư viện chuẩn của Python không?

Counter[] khá tiện dụng. Chỉ cần một vài dòng mã để thực hiện một cái gì đó như thế; . it's in the standard libraries when you remember to use it.

Bộ đếm ở đâu trong Python?

Bộ đếm là một lớp con có sẵn bên trong lớp từ điển . Bộ đếm là một lớp con có sẵn bên trong lớp từ điển. Sử dụng công cụ Python Counter, bạn có thể đếm các cặp khóa-giá trị trong một đối tượng, còn được gọi là đối tượng bảng băm.

Chủ Đề