파이썬을 배워보자(4) - Day2 & 자료구조 ( 리스트(list), 튜플(tuple), 딕셔너리(dict), 셋(set))
Day2. 파이썬의 자료구조
Java에도 List, MAP 등 여러가지 자료구조가 있었다. Python도 마찬가지로 여러가지 자료구조가 존재한다. 이번 글에서 적을것은 가장 대표적인 collection 형태 4가지이다. 바로 리스트( List ), 튜플( Tuple ), 딕셔너리( dict ), 셋(set) 이렇게 4가지가 파이썬에서 많이 쓰이는 자료구조의 형태이다. 각각의 특징과 형태 ,사용방법을 알아보자
1. 리스트 (list)
- 크게 설명할 필요가 있을까? 우리는 반목문을 쓰거나 목록을 불러올 때 항상 리스트를 써왔다.
- 하나의 값이 아니라 여러개의 값을 담을 변수의 대표주자가 바로 List이다.
- 튜플과 다른점은 리스트 안에 있는 값들을 append, insrt 등 내가 원하는대로 추가하고 수정할 수 있다
- 자바와 다르게 파이썬에서는 한가지 타입만 들어가는게 아니라 [ 1, "일번", date, False] 이렇게 여러가지 타입이 한 리스트안에 존재할 수 있다는 것이다.
2. 튜플 (tuple)
- 튜플은 리스트와 거의 유사하다고 보면된다. 표시형식의 차이가 있는데 리스트가 [ ] , 튜플은 ( ) 이다.
- 가장 큰 차이점이 있다면 튜플은 안에 있는 데이터를 추가하거나 수정, 삭제 할 수 없다는 것이다.
- 리스트 + 리스트가 가능한 것 처럼 튜플 + 튜플이 가능하다. 하지만 리스트는 .append() .remove()로 리스트 자체에 변화를 줄 수 있지만 튜플은 a + b = c 이렇게 다른 변수에 할달을 해주는 식으로 처리해야한다.
- 튜플의 기본형태는 ( ) 안에 데이터를 집어넣지만, ( )를 생략해도 무방하다. 오히려 생략을 하고 t1 = 1 ,2, 3 이렇게 변수를 만들면 리스트가 아닌 튜플의 형태로 t1 = (1 ,2 ,3) 을 만들어 준다.
- 튜플안에 값이 하나만 존재하게 하고 싶은경우 t1= (1, ) 이 형태처럼 뒤에 쉼표(,)를 붙여줘야 한다.
- 리스트와 동일한 특성으로 여러가지 타입을 넣을 수 있다.
3. 딕셔너리 (dict)
- 딕셔너리는 중복이 불가능한 collection 자료형이다.
- 자바의 json, map 데이터 형태와 같이 딕셔너리도 { key : value } 구조로 되어있다.
- key값은 중복될 수 없으나 value값은 중복이 가능하다.
- 딕셔너리의 함수 get( ), keys( ), values( ), items( ) 을 써서 원하는 데이터를 꺼낼 수 있다.
이렇게 여러가지 형태로 출력할 수 있는데, 밑에 items( ) 함수를 보면 (key : value) 처럼 튜플의 형태로 출력되어 딕셔너리에 담아지는 것이 또 다른 특징이다.
4. 셋 (set)
- set은 딕셔너리와 마찬가지로 중복이 불가능한 collection 자료형이다.
- 리스트와 딕셔너리만큼 자주 쓰이지는 않지만 중복된 값을 제거하고자 할 때 많이 쓰인다.
- 집합이라고 불리는 만큼 합집합은 a | b , 차집합은 a - b , 교집합은 a & b 처럼 수학적 계산이 가능하다.
- print( )를 하면 리스트나 튜플처럼 순서가 정리되어서 나오지 않고, 출력할 때마다 순서가 뒤죽박죽으로 나온다. 그래서 보통 set로 중복을 제거한 다음 리스트나 튜플로 변환하여 쓴다.
[ 도움주신 분들 ]
[Python] 튜플(tuple), 리스트(list), 셋(set), 딕셔너리(dict) 비교
튜플(tuple), 리스트(list), 셋(set), 딕셔너리(dict) 비교 (궁금증을 갖게된 계기) : 면접에서 튜플과 리스트의 차이점을 명확하게 기억나지 않아서 제대로 설명하지 못 하였다. 따라서, 이번 기회에 여
specialscene.tistory.com