Tôi có Python 2,7 từ điển cấu trúc sau dữ liệu (tôi không kiểm soát nguồn dữ liệu - xuất phát từ một hệ thống khác như là):Duplicates Loại bỏ Từ điển
{112762853378: {'dst': ['10.121.4.136'], 'src': ['1.2.3.4'], 'alias': ['www.example.com'] }, 112762853385: {'dst': ['10.121.4.136'], 'src': ['1.2.3.4'], 'alias': ['www.example.com'] }, 112760496444: {'dst': ['10.121.4.136'], 'src': ['1.2.3.4'] }, 112760496502: {'dst': ['10.122.195.34'], 'src': ['4.3.2.1'] }, 112765083670: ... }
Các phím từ điển sẽ luôn là duy nhất. Dst, src và bí danh có thể trùng lặp. Tất cả các bản ghi sẽ luôn có dst và src nhưng không phải mọi bản ghi sẽ nhất thiết phải có một bí danh như được thấy trong bản ghi thứ ba.
Trong dữ liệu mẫu, một trong hai bản ghi đầu tiên sẽ bị xóa (không quan trọng đối với tôi). Bản ghi thứ ba sẽ được coi là duy nhất vì mặc dù dst và src giống nhau nhưng thiếu bí danh.
Mục tiêu của tôi là xóa tất cả các bản ghi trong đó tất cả các bản ghi dst, src và bí danh đều bị trùng lặp - bất kể khóa nào.
Làm cách nào để tân binh thực hiện việc này?
Ngoài ra, sự hiểu biết hạn chế của tôi về Python diễn giải cấu trúc dữ liệu như một từ điển với các giá trị được lưu trữ trong từ điển ... một dict của dicts, là chính xác?
Đây là điểm khởi đầu tốt, nhưng tôi cảm thấy cần phải chỉ ra rằng nó sẽ chậm đối với các tập hợp dữ liệu lớn, bởi vì với mỗi vòng lặp, nó tạo ra một danh sách mới các giá trị và thực hiện tìm kiếm tuyến tính. – senderle
Điều này làm việc với sự đơn giản và đẹp. –
@senderle: Tôi đánh giá cao suy nghĩ và nhận xét của bạn về tốc độ và sẽ xem xét kỹ nếu cần. Bạn có quan tâm mở rộng câu trả lời này để tăng hiệu suất không? –