Khi cần giới hạn tần suất phần tử trong danh sách, dùng vòng lặp đơn giản kết hợp phương thức append.
Ví dụ
Minh họa dưới đây:
from collections import defaultdict
my_list = [11, 14, 15, 14, 11, 14, 14, 15, 15, 16]
print("Danh sách là:")
print(my_list)
my_dict = {14: 3, 11: 1, 16: 1, 15: 2}
print("Dictionary là:")
print(my_dict)
my_result = []
my_def_dict = defaultdict(int)
for element in my_list:
my_def_dict[element] += 1
if my_def_dict[element] > my_dict[element]:
continue
else:
my_result.append(element)
print("Kết quả là:")
print(my_result)
Kết quả
Danh sách là: [11, 14, 15, 14, 11, 14, 14, 15, 15, 16]
Dictionary giới hạn: {14: 3, 11: 1, 16: 1, 15: 2}
Kết quả là: [11, 14, 15, 14, 14, 15, 16]
Giải thích
- Import gói cần thiết vào môi trường.
- Định nghĩa danh sách số nguyên và hiển thị ra console.
- Định nghĩa dictionary và hiển thị ra console.
- Định nghĩa danh sách rỗng.
- Tạo defaultdict kiểu int.
- Lặp qua danh sách gốc, tăng giá trị dictionary mặc định lên 1.
- Tùy theo phần tử trong dictionary gốc và defaultdict lớn hơn hay không, dùng toán tử
continue. - Sau đó, dùng
appendthêm phần tử vào danh sách rỗng. - Đây là đầu ra hiển thị trên console.