Trong hướng dẫn này, chúng ta sẽ viết chương trình tìm tần suất của tất cả các phần tử trong một mảng. Chúng ta có thể làm theo nhiều cách, hãy khám phá hai phương pháp phổ biến.
Sử dụng từ điển (dict)
Khởi tạo mảng.
Khởi tạo một từ điển rỗng.
Duyệt qua danh sách.
Nếu phần tử chưa có trong từ điển, đặt giá trị là 1.
Ngược lại, tăng giá trị lên 1.
In phần tử và tần suất bằng cách duyệt qua từ điển.
Ví dụ
Xem mã dưới đây:
# khởi tạo danh sách
mang = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]
# khởi tạo từ điển để lưu tần suất
tan_suat = {}
# duyệt qua các phần tử để đếm tần suất
for phan_tu in mang:
# kiểm tra xem đã có trong từ điển chưa
if phan_tu in tan_suat:
# tăng đếm lên 1
tan_suat[phan_tu] += 1
else:
# đặt đếm bằng 1
tan_suat[phan_tu] = 1
# in tần suất các phần tử
for khoa, gia_tri in tan_suat.items():
print(f"{khoa}: {gia_tri}")
Kết quả
Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau:
1: 3 2: 4 3: 5
Hãy xem phương pháp thứ hai sử dụng lớp Counter của mô-đun collections.
Sử dụng lớp Counter
Nhập mô-đun collections.
Khởi tạo mảng.
Truyền danh sách vào lớp Counter. Lưu kết quả vào biến.
In phần tử và tần suất bằng cách duyệt qua kết quả.
Ví dụ
Xem mã dưới đây:
# nhập mô-đun collections
import collections
# khởi tạo mảng
mang = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]
# lấy tần suất các phần tử sử dụng lớp Counter
tan_suat = collections.Counter(mang)
# in phần tử và tần suất
for khoa, gia_tri in tan_suat.items():
print(f"{khoa}: {gia_tri}")
Kết quả
Nếu bạn chạy mã trên, bạn sẽ nhận được kết quả giống như phương pháp trước:
1: 3 2: 4 3: 5
Kết luận
Nếu bạn có bất kỳ thắc mắc nào về hướng dẫn này, hãy để lại bình luận bên dưới.