일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 밀도기반
- merge
- Sawzall
- pig
- 하둡
- 데이터프레임
- 결정계수
- dict
- 다중공선성
- 유사도
- SQL on 하둡
- join
- DBSCAN
- Python
- DataFrame
- list
- 교차검증
- hive
- 딕셔너리
- T-검정
- 가설검정
- 분포
- pca
- distribution
- SPLIT
- 분산분석
- p-value
- 병렬 쿼리 시스템
- k-means
- cross validation
- Today
- Total
one of a kind scene
[Python] 튜플(tuple), 리스트(list), 셋(set), 딕셔너리(dict) 비교 본문
[Python] 튜플(tuple), 리스트(list), 셋(set), 딕셔너리(dict) 비교
specialscene 2020. 3. 25. 00:22튜플(tuple), 리스트(list), 셋(set), 딕셔너리(dict) 비교
(궁금증을 갖게된 계기)
: 면접에서 튜플과 리스트의 차이점을 명확하게 기억나지 않아서 제대로 설명하지 못 하였다. 따라서, 이번 기회에 여러 자료 구조간의 유사한 점과 차이점을 명확히 알아보고자 함
1. 튜플(tuple)
• 리스트와 비교가 많이되며, 리스트와의 가장 큰 차이점은 요소를 삭제하거나 변경할 수 없다는 것.
• 이를 immutable(불변성) 이라고 표현함, iterable 함
• 리스트는 append, remove 메소드로 요소들을 추가하거나 삭제할 수 있지만 튜플은 이러한 메소드가 없음
• 튜플 + 튜플 형식으로 요소를 추가할 수는 있으며, 삭제도 indexing을 통해서 삭제하고자 하는 요소의 index를 선택하지 않으면 가능하다.
• But, 위와 같은 방식은 억지로(?) append나 remove가 된 것 처럼 한 것이라 할 수 있음
• 리시트에서는 예를 들어 a라는 리스트가 있을 때, a 자체를 변화를 줄 수 있지만,
• 튜플은 a라는 튜플 b라는 튜플이 있을때 c = a + b 형식으로 새로운 변수에 할당하는 방식으로 append와 결과적으로만 동일한 튜플을 만들 수 있는 것이다.
• 또한, 다른 type의 데이터들을 담을 수 있음 ('a', 1, 3) 이런 식으로
2. 리스트(list)
• 튜플과 비교가 많이되며, 튜플과의 가장 큰 차이점은 요소를 삭제하거나 변경할 수 있다는 것.
• 이를 mutable(가변성)이라고 표현함, iterable 함
• 리스트는 append, remove 메소드로 요소들을 추가하거나 삭제할 수 있음
• 튜플과 마찬가지로 리스트 + 리스트 형식으로 요소를 추가할 수 있음
• 또한, 다른 type의 데이터들을 담을 수 있음 ['a', 1, 3] 이런 식으로
3. 셋(set)
• 셋은 순서가 없는 중복이 불가능한 collection 자료형이다. -> 내장모듈 collections 알아두면 좋음
• mutable(가변성) 함
• 요소들 간의 순서가 없음 -> 따라서, indexing이 불가 -> not iterable
• 중복제거 교집합, 합집합, 차집합 등의 수학적인 계산이 가능
• 셋은 add(요소 1개 추가), update(여러요소 추가), remove 메소드를 활용하여 요소를 추가/삭제한다.
• 합집합은 a | b로 표현, 차집합은 a - b로 표현, 교집합은 a & b로 표현
4. 딕셔너리(dict)
• 딕셔너리를 구현한 클래스는 셋(set)
• 따라서, 딕셔너리는 셋처럼 중복이 불가능한 collection 자료형이고, mutable(가변성) 하며,
• key : value 라는 독특하고 유용한 구조로 이루어짐
• 중복이 불가능하다는 뜻은 key값들 끼리 중복이 불가능 하다는 뜻
• a라는 딕셔너리가 있을때 keys나 values 메소드를 활용하여 key나 value값 확인가능. key와 value를 모두 확인하고 싶을 때는 items 메소드를 사용
• (참고) B = {'a' : [1]}라는 딕셔너리는 value가 list 형태이므로 B['a'].append or B['a'].remove 가 가능
Reference
https://blueshw.github.io/2016/02/28/python-about-set/
'Python > 내장모듈 및 자료구조' 카테고리의 다른 글
[itertools] 순열(permutations), 조합(combinations), 곱집합(product) 만들기 (0) | 2020.01.28 |
---|---|
[list] split과 join 사용 (0) | 2020.01.03 |
list 다루기(정렬하기, 역순으로 배치하기, 역순으로 가져오기) (0) | 2019.12.26 |
힙(Heap)구조에 대해서 알아보자(python 내장 모듈 heapq) (1) | 2019.08.02 |