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, 6 của Python cung cấp một giải pháp rõ ràng, hiệu quả và Pythonic Show
Lớp con từ điển này cung cấp khả năng đếm hiệu quả vượt trội. Hiểu 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 PythonTrong hướng dẫn này, bạn sẽ học cách
Bạn cũng sẽ tìm hiểu về những điều cơ bản của việc sử dụng 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 PythonTiề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” >>>
Vòng lặp 2 lặp qua các chữ cái trong 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ư 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 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ố đếmGhi 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 >>>
Khi bạn gọi 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ểnBạn cũng có thể sử dụng 3 from để đếm các đối tượng trong một vòng lặp>>>
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 4 bằng cách sử dụng 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 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 7 làm chức năng xuất xưởng, nên giá trị ban đầu là 7, là kết quả của việc gọi 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 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ệnLoại bỏ các quảng cáoBắ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 6 là một lớp con của 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 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 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ộ đếmXây dựng quầyCó một số cách để bạn tạo các phiên bản 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 6>>>
6 lặp lại trên 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 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ứ haiGhi chú. Trong 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ơnCó nhiều cách khác để tạo các phiên bản 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>>>
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 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 >>>
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 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 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 1. Trong trường hợp đó, bạn có thể làm một cái gì đó như thế này>>>
Các bộ Python lưu trữ các đối tượng duy nhất, vì vậy lệnh gọi tới 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 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ư 3. Trong ví dụ cụ thể này, mỗi chữ cái sẽ có số lượng mặc định là 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ạiKhô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 6 giữ số âm và số không>>>
Trong ví dụ này, bạn có thể hỏi, “Tại sao tôi có 6 quả cà chua?” . Ai biết? Loại bỏ các quảng cáoCập nhật số lượng đối tượngKhi bạn đã có một phiên bản 6, bạn có thể sử dụng 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 6 của nó, việc triển khai do 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ếtBạn có thể sử dụng 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>>>
Bây giờ bạn có 5 phiên bản của 6, 5 phiên bản của 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ư 9, 00 và 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 02Ghi 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 >>>
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ỡ 0, dẫn đến một 04Cách thứ hai để sử dụng 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>>> 0Trong ví dụ đầu tiên, bạn cập nhật bộ đếm hiện có, 06, sử dụng một bộ đếm khác, 07. Lưu ý cách 0 cộng số đếm từ cả hai bộ đếmGhi chú. Bạn cũng có thể sử dụng 0 với các đối số từ khóa. Vì vậy, ví dụ, làm điều gì đó như 10 hoạt động giống như 11 trong ví dụ trênTiế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, 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ếuTruy cập Nội dung của Bộ đếmNhư bạn đã biết, 6 có giao diện gần giống với 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 ( 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>>> 1Trong 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ư 16, 17 và 18Ghi 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ề 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ì 20>>> 2Vì chữ cái 21 không xuất hiện trong chuỗi 2, nên bộ đếm trả về 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ấtNế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 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ênNếu bạn cung cấp một số nguyên 26 làm đối số cho 24, thì bạn sẽ nhận được 26 đối tượng phổ biến nhất. Nếu bạn bỏ qua 26 hoặc đặt nó thành 30, thì 24 sẽ trả về tất cả các đối tượng trong bộ đếm>>> 3Trong các ví dụ này, bạn sử dụng 24 để truy xuất các đối tượng thường xuyên nhất trong 06. Không có đối số hoặc với 30, phương thức trả về tất cả các đối tượng. Nếu đối số của 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ượngBạ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 24>>> 4Lần cắt đầu tiên, 37, trả về tất cả các đối tượng trong 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 39 trích xuất hai đối tượng cuối cùng từ kết quả của 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 41 thành 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 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ộ đếmLoạ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 độngCho đế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 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
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 6 của PythonĐếm các chữ cái trong một tệp văn bảnGiả 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à 47 với nội dung sau 5Vâ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 6 và viết một hàm như thế này 6Đây là cách mã này hoạt động
Để sử dụng 49, bạn có thể làm như thế này>>> 7Tuyệ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 ASCIIThống kê là một lĩnh vực khác mà bạn có thể sử dụng 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àyBâ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 8Trong ví dụ này, 54 lấy một số phân loại 55, đếm số lần mỗi danh mục duy nhất xuất hiện trong dữ liệu ( 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 >>> 9Cuộc gọi đầu tiên đến 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 58 để thay đổi ký tự cho các thanhGhi chú. Trong ví dụ trên, 54 không chuẩn hóa các giá trị của 56 khi nó vẽ biểu đồ. Nếu bạn sử dụng dữ liệu có giá trị 56 cao, thì màn hình của bạn sẽ giống như một mớ ký hiệu hỗn độnKhi 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 24Loại bỏ các quảng cáoVẽ dữ liệu phân loại với MatplotlibThậ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 63 như bình thường 0Lệ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 >>> 1Tạ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 24 để sắp xếp dữ liệuBạn sử dụng 65 để giải nén nội dung của 06 thành hai biến
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ẫuTrong 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 71, thì chế độ là 4 vì mẫu này xuất hiện thường xuyên nhấtTrong 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 73. Ở đây bạn có hai chế độ, 4 và 75, vì cả hai đều xuất hiện cùng một số lầnBạ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 6 và 24Ghi 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 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 2Bên trong 80, trước tiên bạn đếm số lần mỗi quan sát xuất hiện trong đầu vào 55. Sau đó, bạn sử dụng 82 để biết tần suất quan sát phổ biến nhất. Vì 24 trả về một danh sách các bộ dữ liệu ở dạng 84, nên bạn cần truy xuất bộ dữ liệu tại chỉ mục 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
Việc hiểu danh sách so sánh 89 của mỗi đối tượng với số lượng của đối tượng phổ biến nhất, 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 >>> 3 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àoLoại bỏ các quảng cáoĐếm tệp theo loạiMột ví dụ thú vị khác liên quan đến 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 93>>> 4Trong 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 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 độngSử 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 >>> 5Khi 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 6. Các khóa trong trường hợp 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ử>>> 6Tại đây, trước tiên bạn tạo một bộ nhiều lớp bằng cách sử dụng 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 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>>> 7Trong ví dụ này, bạn tạo một giỏ mua hàng bằng cách sử dụng đối tượng 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 2 lặp qua bộ đếm và tính toán 04 cho mỗi 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 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ạnTậ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 >>> 8Trong 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 04 trong 08Bâ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à 6 cung cấpLoại bỏ các quảng cáoKhôi phục các phần tử từ bộ đếmTính năng nhiều bộ đầu tiên của 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>>> 9Hiệu quả ròng của việc gọi 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, 6 nhớ thứ tự chèn các phím của nó như một tính năng kế thừa từ 6Ghi 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ì 11 bỏ qua nóChuỗi tài liệu của 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ày1836 = 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 6 của Python, bạn sẽ có 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ó>>> 0Vòng lặp lặp lại các phần tử trong 20 và nhân chúng để tính số ban đầu, 21. Nếu bạn đang sử dụng Python 3. 8 trở lên, thì bạn có thể sử dụng from 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>>> 1Trong ví dụ này, lệnh gọi tới 11 khôi phục các thừa số nguyên tố. Sau đó, 25 tính toán 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 gianSử dụng 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>>> 2Trong ví dụ này, chuỗi kết quả không đánh vần từ gốc, 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 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êuGiả 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 >>> 3Tại đây, bạn sử dụng một số cách để cung cấp dữ liệu đầu vào cho 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 29 là đối trọng của 0Loại bỏ các quảng cáoThực hiện số học với bội số của các phần tửVới 29 và 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 ( 35) và trừ ( 36) số lượng phần tử, cũng như các toán tử cho giao điểm ( 37) và hợp ( 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 đaDướ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 >>> 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 ( 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 quanVí dụ thứ hai cho thấy cách hoạt động của toán tử trừ ( 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 41 trong kết quả vì 8 - 9 = -1Toán tử giao nhau ( 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 ( 38) trả về các đối tượng có số đếm cao hơn từ cả hai bộ đếm liên quanGhi chú. Để biết thêm chi tiết về cách 6 xử lý các phép tính số học, hãy xem lớp 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 ( 35) và dấu trừ (_______18_______36) tương ứng>>> 5Khi 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ậnKhi bạn cần đếm một số đối tượng lặp lại trong Python, bạn có thể sử dụng 6 từ 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ơnTrong hướng dẫn này, bạn đã học cách
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 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ề LeodanisMỗ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 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ẻ EmailBà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 |