2012-01-23 42 views
5

Tôi đã sau danh sách các từ điển:Hủy bỏ bản sao từ danh sách các từ điển

d = [ 
{ 'name': 'test', 'regions': [{'country': 'UK'}] }, 
{ 'name': 'test', 'regions': [{'country': 'US'}, {'country': 'DE'}] }, 
{ 'name': 'test 1', 'regions': [{'country': 'UK'}], 'clients': ['1', '2', '5'] }, 
{ 'name': 'test', 'regions': [{'country': 'UK'}] }, 
] 

cách dễ nhất để loại bỏ các mục từ danh sách đó là bản sao là gì?

tôi thấy các giải pháp mà làm việc, nhưng chỉ khi một mục không có lồng dicts hoặc danh sách

+4

Kết quả mong đợi cho bạn ở đây là gì? –

+3

Vui lòng xác định "trùng lặp". Bạn có nghĩa là khóa trùng lặp, giá trị trùng lặp hoặc khóa trùng lặp * và * giá trị không? –

+0

khóa và giá trị trùng lặp – pablox

Trả lời

15

Làm thế nào về điều này:

new_d = [] 
for x in d: 
    if x not in new_d: 
     new_d.append(x) 
+0

Tôi biết nó sẽ là một cái gì đó đơn giản :) Cảm ơn – pablox

0

Đối với đơn giản nhất như trong "dễ thực hiện", một trong những trong this question có vẻ khá nhỏ gọn.

Không có khả năng nó cũng có hiệu quả rất khôn ngoan mặc dù.

Các vấn đề liên quan