Python
[Python] 리스트 딕셔너리 중복 제거
학학이
2020. 2. 13. 17:41
python how to remove duplicate dict in list
https://stackoverflow.com/questions/11092511/python-list-of-unique-dictionaries
dict 전체 중복
# 순서가 보장되지 않음
list(map(dict, set(tuple(sorted(d.items())) for d in data)))
# 순서가 보장됨
list(map(dict, collections.OrderedDict.fromkeys(tuple(sorted(d.items())) for d in data)))
data = [
{'id': 1, 'name': 'hak', 'age': 30},
{'id': 2, 'name': 'woo', 'age': 31},
{'id': 3, 'name': 'ho', 'age': 29},
{'id': 1, 'name': 'hak', 'age': 30},
]
data1 = list(map(dict, set(tuple(sorted(d.items())) for d in data)))
data2 = list(map(dict, collections.OrderedDict.fromkeys(tuple(sorted(d.items())) for d in data)))
print(data1)
print(data2)
dict 특정 key 중복
list({v['id']:v for v in data}.values())
- 이 방법은 특정
key
에 대한 중복 제거기 때문에 사용하지 않는다. - 만약, 특정 key가 중복인 경우를 중복으로 바라본다면 이 방법을 사용한다.