Language/Python
[Python] List에서 dictionary 중복 제거
Junhong Kim
2018. 3. 26. 14:43
728x90
반응형
리스트에서 딕셔너리 중복 제거
파이썬 리스트에서
특정 속성
기준으로 중복되는 딕셔너리를 제거할 때 사용되는 Example 입니다.
다음과 같은 accounts
계정 목록이 있다고 가정해봅시다.
accounts = [ {'id': 1, 'username': 'Kim'}, {'id': 2, 'username': 'Lee'}, {'id': 3, 'username': 'Park'}, {'id': 3, 'username': 'Choi'}, ]
위 예제 코드에서 accounts
리스트에 username
이 Park 과 Choi 인 사용자의 id
가 같습니다.
이때, 우리는 id
가 3
인 계정은 하나만 출력하고 싶을 때 다음과 같이 코드를 작성합니다.
accounts = [ {'id': 1, 'username': 'Kim'}, {'id': 2, 'username': 'Lee'}, {'id': 3, 'username': 'Park'}, {'id': 3, 'username': 'Choi'}, ] x = list({account['id']: account for account in accounts}.values()) print(x) # [{'id': 1, 'username': 'Kim'}, {'id': 2, 'username': 'Lee'}, {'id': 3, 'username': 'Choi'}]
위에서 보는 출력 결과에서 id
가 중복된 딕셔너리를 제외하고 출력되는 것을 확인할 수 있습니다.
다음과 같이 작성하면 accounts
리스트에 중복되는 username
이 없기 때문에 모든 리스트를 출력합니다.
accounts = [ {'id': 1, 'username': 'Kim'}, {'id': 2, 'username': 'Lee'}, {'id': 3, 'username': 'Park'}, {'id': 3, 'username': 'Choi'}, ] x = list({account['username']: account for account in accounts}.values()) print(x) # [{'id': 1, 'username': 'Kim'}, {'id': 2, 'username': 'Lee'}, {'id': 3, 'username': 'Park'}, {'id': 3, 'username': 'Choi'}]
728x90
반응형