파이썬 자료구조_개념파악

파이썬 데이터분석 입문 강좌의 맛보기 강의입니다.

강의 대본 보기

파이썬 자료구조에 대해서 설명드리겠습니다 파이썬에서 제공되는 자료구조는 크게 세 가지가 있는데요 리스트와 튜플, 딕셔너리입니다 리스트와 튜플, 딕셔너리의 구분은 괄호로 하게 되는데요 리스트는 대괄호로 시작해서 대괄호로 끝나고요 그 다음에 튜플은 소괄호로 시작해서 소괄호로 끝나고요 딕셔너리는 중괄호로 시작해서 중괄호로 끝나게 됩니다 저희가 이 자료구조의 개념이 변수의 개념과 좀 헷갈리실 것 같아서 먼저 미리 설명을 좀 드리면 변수는 a라는 곳에 100을 잡아주게 되면 메모리에 a라는 주소를 가지고 빈 방을 잡고 100이라는 값을 하나 넣어준 형태였죠. 그런데 만약 리스트라고 예를 들면 리스트 자료구조를 한번 만들어 볼게요. 대괄호 리스트는 시작한다고 했으니까 대괄호 시작해서 100과 200을 넣어줬다면 이렇게 메모리는 a, a 주소에 이렇게 두 개의 방을 연속해서 잡아주고요. 100과 200을 이렇게 같이 잡아주는 형태가 되겠습니다. 이와 같이 변수는 자료 한 개를 담는 상자라고 생각하시면 리스트 같은 자료구조들은 자료를 한꺼번에 연속적으로 여러 개를 잡아주는 상자라고 생각하시면 되겠습니다. 세 가지 자료구조 중에 리스트와 튜플은 공통점이 좀 많습니다. 물론 차이점도 있죠. 그리고 딕셔너리는 이 리스트와 튜플하고는 좀 다른 모양을 가지고 있습니다. 일단 리스트하고 튜플은 가장 큰 공통점이 뭐냐면 자료들의 순서를 가지고 있다는 얘기죠. 자료가 순서를 지켜준다는 얘기는 두 가지가 가능하다는 얘기인데요 첫 번째 하나는 자료를 순서대로 지정할 수가 있고 지정한 순번에 해당되는 자료값을 제가 찾을 수가 있다는 거죠 그래서 저희가 인덱싱이라고 합니다 인덱싱 그래서 인덱싱이 가능하고요 그러니까 첫 번째 가지와 세 번째 가지와 맨 마지막에 서 있는 자료를 보고 싶네 이렇게 인덱싱할 수 있는 부분이 있고요 두 번째는 순서를 가지고 있기 때문에 인덱싱이 가능하고 또한 인덱싱이 가능하다는 얘기는 첫번째부터 다섯번째까지 보고싶어 세번째에서 여섯번째까지 가져와 라는 슬라이싱도 가능하다는 얘기죠 그래서 인덱싱과 슬라이싱이 가능한 자료구조가 바로 리스트하고 튜플이죠 왜냐하면 순서를 지키고 있기 때문에 그렇습니다 그런데 딕셔너리는 생긴 모양이 키와 값인데요 key, value, pairs라고 해서 키와 값이 한 쌍으로 이루어져 있기 때문에 키값을 가지고 자료를 찾는데 순서를 갖고 있지 않습니다. 그래서 순서를 갖고 있는 자료구조가 아니기 때문에 Dictionary는 인덱싱과 슬라이싱이 불가능하고요. List와 Tuple은 대신에 인덱싱과 슬라이싱이 가능하다는 공통점이 있죠. 그럼 List와 Tuple의 다른 점이 뭐냐면 List는 자료구조를 만들고 나면 자료 자체를 수정할 수가 있어요. 그런데 Tuple은 한 번 만들어진 자료 자체를 수정하지 못합니다. 이 차이점이 좀 있죠. 저희가 데이터 자체가 수정이 돼야 되는 경우 리스트를 쓰셔야 되고요 데이터가 수정이 불가능하게 사용될 경우 예를 들면 해커들이 들어와서 자료를 변경하고 싶을 때 변경을 못하게 해야 되는 상황이다 이렇게 되면 예를 들어 튜플을 이용하시면 자료 자체가 절대로 수정되지는 않습니다 그래서 튜플에서는 자료를 수정하고 싶으시면 튜플 자체를 삭제하시고 다시 튜플을 생성하셔야 된다는 점이 있는 거죠 이런 게 두 개의 리스트하고 튜플의 차이점이라고 볼 수가 있습니다 딕셔너리는 키와 값들의 한 쌍으로 이루어져 있는데요. 키 값이 들어가고 그 다음에 값하고의 구분은 콜론으로 이루어지고 있고요. 이렇게 한 쌍이 이루어지면 이들이 키와 값의 쌍이 여러개인 것을 컴마로 구분해서 여러개 써주시면 돼요. 딕셔너리이기 때문에 중괄호 시작에서 중괄호로 끝나셔야 되는 부분이 있고요. 그래서 순서를 지키지 않는 딕셔너리는 어떻게 그러면 자료를 찾느냐 바로 키에 의해서 검색을 하게 되는데요. 이 키에 의한 검색 방법은 저희가 해시테이블을 따르고 있기 때문에 생각보다 속도가 굉장히 좋습니다. 그래서 딕셔너리를 검색할 때는 학번을 알고 싶어 라고 하면 학번은 1000번이야, 이름은 뭔데? 그럼 홍길동이야, 학과는 컴퓨터학과예요 라고 이렇게 키 값을 가지고 검색을 하게 되시면 키에 잡힌 값들을 대답하는 형태로 자료구조가 이루어져 있습니다.

이 강좌의 맛보기 강의

파이썬 데이터분석 입문
파이썬 데이터분석 입문강좌 자세히 보기