스마트웹앱콘텐츠전문가/파이썬(플라스크, 데이터 처리)

[데이터 다루기]리스트, 튜플, 딕셔너리

9D4U 2018. 1. 19. 15:54
728x90
반응형

데이터 다루기 : 리스트와 튜플과 딕셔너리 <- 다수의 데이터를 편리하게 다룰 수 있게 도와주는 자료형


1. 리스트

- 리스트를 만들 때는 대괄호[와] 사이에 데이터 또는 변수 목록을 입혁해주면 됨. 각 데이터는 콤마(.)로 구분함

- 리스트는 문자열처럼 참조 연산이 가능함. 리스트 뒤에 대광호를 붙이고 [와] 사이에 참조하고자 하는 첨자를 입력하면 됨.(예: a[0])

- 리스트로 순서열이므로 문자열처럼 슬라이싱이 가능함.

- 연산자를 통한 리스트간의 결합이 가능

- 리스트 내의 특정 위치에 있는 데이터를 변경하려면 참조 연산을 이용해야 함.예) a[2]= 30 <- 대괄호 사이에 첨자를 입력하면 리스트 내의 특정 요소에 접근 가능, 여기에 데이터까지 할당하면 리스트의 내용이 변경이 됨.

- 리스트의 길이를 잴 떄도 len() 함수가 이용됨.

- 리스트가 자체적으로 탑재하고 있는 여러 가지 메소드

append():리스트의 끝에 새 요소를 추가, extend():기존 리스트에 다른 리스트를 이어 붙임(+ 연산자와 같은 기능), insert():첨자로 리스트 내의 위치에 새 요소를 삽입, insert(첨자, 데이터)의 형식으로 사용,

remove():매개변수로 입력한 데이터를 리스트에서 찾아 발견한 첫 번째 요소를 제거, pop(): 리스트의 마지막 요소를 뽑아내어 리스트에서 제거, 또는 인자에 첨자를 집어넣어 특정 요소를 제거,

index(): 리스트 내에서 매개변수로 입력한 데이터와 일치하는 첫 번째 요소의 첨자를 알려줌, 찾고자 하는 데이터와 일치하는 요소가 없으면 오류 발생, count(): 매개변수로 입력한 데이터와 일치하는 요소가 몇개 있는지 셈,

sort(): 리스트 내의 요소를 정렬, 키워드 매개변수로 reverse = True를 입력하면 내림차순, 아무것도 입력하지 않으면 오름차순으로 정렬, reverse():리스트 내 요소의 순서를 반대로 뒤집음.

2. 튜플(변경 불가능한 자료형)

-괄호 ('와')를 이용함 또한, 괄호를 생략해도 튜플이 만들어짐.

cf) 요소가 하나뿐인 튜플을 정의할 떄는 요소 뒤에 콤마(,)를 반드시 넣어줘야 함.

- 리스트와 문자열처럼 순서열 자료형이므로, 대괄호를 이용한 참조 연산과 슬라이싱, 튜플간 결합 등의 연산이 가능. but 요소 변경을 불가능!!! 

- 문자열, 리스트와 마찬가지로 튜플의 길이를 잴 떄는 len()함수를 이용.

- 패킹과 언패킹 : 여러 가지 데이터를 튜플로 묶는 것을 (튜플)패킹이라고 함

   튜플의 각 요소를 여러개의 변수에 할당하는 것은 (튜플)언패킹이라고 함. <- 언패킹을 할 때는 튜플 요소의 수와 각 요소를 담아내는 변수의 수가 일치해야 함.

- 튜플 메소드 

index():매개변수로 입력한 데이터와 일치하는 튜플 내 요소의 첨자를 알려줌, count(): 매개변수로 입력한 데이터와 일치하는 요소가 몇 개 있는지 셈.


2.5 리스트 vs 튜플

- 리스트는 변경이 가능하고 튜플은 변경이 불가능.

- 리스트는 이름 그대로 목록 형식의 데이터를 다루는 데 적합하고 튜플은 위경도 좌표나 RGB 색상처럼 작은 규모의 자료 구조를 구성하기에 좋음.


3. 딕셔너리

- 사용법 측면에서는 리스트와 비슷하지만,

  딕셔너리의 첨자는 키(Key)라고 하고, 이 키가 가리키는 슬롯에 저장되는 데이터를 일컫어 값(Value)이라고 함.

- 딕셔너리는 키-값의 쌍으로 구성됨. -> 탐색 속도가 빠르고, 사용하기도 편함.

- 딕셔너리를 만들 떄는 중괄호{와}을 이용

- 딕셔너리는 자신에게 저장되어 있는 키의 목록과 값의 목록을 따로 추려낼 수 있음.

- 딕셔너리 메소드

keys(): 키 목록, values(): 값의 목록,

in 연산자를 이용하면 특정 키가 키 목록 안에 존재하는 지 확인 가능.

pop(): 매개변수에 해당 키 값을 입력하면 키-값쌍으로 제거됨.

clear(): 딕셔너리의 데이터를 남김없이 정리하고자 할 때

728x90