Đôi khi ta cần tìm sự khác biệt giữa hai danh sách. Nó cũng có nghĩa là phép trừ toán học: các phần tử từ danh sách đầu tiên bị loại bỏ nếu chúng hiện diện trong danh sách thứ hai. Các bản sao được bảo toàn. Dưới đây là cách tiếp cận để đạt được điều này.
Ta có thể dùng phương thức Counter từ module collections, nó sẽ theo dõi số lượng phần tử. Một phép trừ toán học đơn giản cho kết quả mong muốn. Trong kết quả cuối cùng, số lần xuất hiện của một phần tử giữa danh sách đầu tiên và thứ hai sẽ quyết định các phần tử.
Ví dụ
from collections import Counter # khởi tạo danh sách listA = ['Mon', 'Tue', 9, 3, 3] listB = ['Mon', 3] # in danh sách gốc print("Danh sách cho trước ListA : ",listA) print("Danh sách cho trước ListB : ",listB) # Áp dụng collections.Counter() diff_list = list((Counter(listA) - Counter(listB)).elements()) # Kết quả print("Kết quả trừ danh sách : ",diff_list)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách cho trước ListA : ['Mon', 'Tue', 9, 3, 3] Danh sách cho trước ListB : ['Mon', 3] Kết quả trừ danh sách : ['Tue', 9, 3]