>>> data = [['홍길동', 2019022872, '파이썬의 이해', 'A+'], ['김영희', 2019012872, '파이썬의 이해', 'C+'], ['홍길동', 2019022872, '파이썬의 이해', 'A+'], ['김철수', 2019022873, '파이썬의 이해', 'A']]
>>> dup = list(set(map(tuple, data)))
>>> print(dup)
[('홍길동', 2019022872, '파이썬의 이해', 'A+'), ('김영희', 2019012872, '파이썬의 이해', 'C+'), ('김철수', 2019022873, '파이썬의 이해', 'A')]
리스트 내부의 정렬 순서를 유지하는 것도 중요해서 검색해보니 바로 나왔습니다.
tuple은 hashable한 자료형이라서 2차원 튜플에 set 함수를 적용해도 중복 제거가 된다고 합니다.
>>> test = [['a', 'b'], ['a', 'b'], ['c']]
>>> set(t)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unhashable type: 'list'
실제로 2차원 리스트에 set 함수를 적용했더니 타입에러가 떴습니다.
>>> t = (('a', 'b'), ('a', 'b'), ('c'))
>>> set(t)
{'c', ('a', 'b')}
2차원 튜플은 set 함수가 잘 적용되네요!
원소가 1개인 경우에는 튜플이 되지 않아서 string으로 바뀌었습니다.. 실제 데이터를 다룰 때는 조심해야겠습니다.
* 참고 : stackoverflow
'Python3.6' 카테고리의 다른 글
XML 문서에 Processing Instruction 추가하기 (0) | 2020.01.23 |
---|---|
XML 문서에 주석 달기 (0) | 2020.01.23 |
알파벳에서 발음 구별 기호(Diacritic, Accent Mark) 분리하기 (0) | 2019.10.01 |
요소가 숫자로 구성된 리스트에 join 함수 사용하기 (0) | 2019.09.28 |
문자열에 리스트 요소 포함 여부 확인 (0) | 2019.09.20 |