안녕세계
[Python] List에서 dictionary 중복 제거 본문
[Python] List에서 dictionary 중복 제거
Junhong Kim 2018. 3. 26. 14:43728x90
반응형
리스트에서 딕셔너리 중복 제거
파이썬 리스트에서
특정 속성
기준으로 중복되는 딕셔너리를 제거할 때 사용되는 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
반응형
'Language > Python' 카테고리의 다른 글
[Python] dictionary 자료형 (0) | 2018.12.03 |
---|---|
[Python] args와 kwargs (0) | 2018.12.02 |
[Python] Comprehension (List, Set, Dictionary) (0) | 2018.03.30 |
[Python] enumerate()를 활용한 index, value 동시 접근 (0) | 2018.03.29 |
[Python] datetime, timestamp 변환 (0) | 2018.03.26 |
Comments