본문 바로가기
개발자 일지/Phython

[파이썬 기초]데이터타입 - list, 기타 컨테이너 타입(튜플,딕셔너리)

by 네빌링 2021. 3. 16.
반응형

-파이썬 데이터 타입인 컨테이너 타입 중 하나인 list에 대해 알아보며, 기타 다른 컨테이너 타입도 간단하게 알아본다.

-공식 문서와 강의 학습을 함께 하였다.

-생활코딩 파이썬 강의를 바탕으로 학습 및 보충학습 하였다.

-파이썬은 3.9.2 ver를 사용한다.


 파이썬에는 크게 다음과 같은 타입이 있다.

  • 문자열 타입 
  • 숫자 타입 : 정수(int), 실수(float), 복소수(complex)
  • 컨테이너 타입 : 리스트(list), 튜플(tuple), 딕셔너리(dictionary)

여기서는 컨테이너 타입에 대해 집중적으로 알아보려고 한다.

 

리스트(list)

 변수 하나에는 하나의 값이 존재할 수 있다. 한 변수에 2개 이상의 값을 담기 위해서는 컨테이너 타입을 사용해야 한다. 여기서는 컨테이너 타입 중 list타입을 소개한다. list타입은 '[]'안에 값들이 들어가며 값을 변경할 수 있다. 값은 숫자타입이나 문자열타입 모두 들어갈 수 있다. 여러 사용방법이 있지만 공식문서와 강의를 기반으로 학습한 부분만 예제로 올린다. 공식문서는 다음 링크를 참고하였다.

 

docs.python.org/3/tutorial/introduction.html#lists

 

3. An Informal Introduction to Python — Python 3.9.2 documentation

3. An Informal Introduction to Python In the following examples, input and output are distinguished by the presence or absence of prompts (>>> and …): to repeat the example, you must type everything after the prompt, when the prompt appears; lines that d

docs.python.org

 

squares = [1,4,9,16,25] # list타입으로 선언

#엘리먼트(값) 가져오기 : 값의 순서인 인덱스를 사용하며 순서는 0부터 시작(0,1,2,3,4)
print(squares[0]) # 1
print(squares[-2]) # 16

#슬라이싱(:) 사용하기 : 리스트 안의 특정 값이나 값들을 잘라서 반환해준다
print(squares[1:3]) # [4,9]
print(squares[3:]) # [16,25]

#concatenation : 합치기
print(squares + [77,88,99]) # [1,4,9,16,25,77,88,99]

#값 변경 : immuatable(변경불가)한 String과 다르게 list는 muatable(변경가능)
squares[0] = 14
print(squares) # [14,4,9,16,25]

#리스트 맨 뒤에 값 더하기
squares.append(65)
print(squares) # [14,4,9,16,25,65]

#엘리먼트(값) 삭제
del squares[0]
print(squares) #[4,9,16,25,65]

 

 선언은 자바의 배열을 선언하는 것 처럼 저렇게 [1,4,9,16,25]방식으로 선언한다.

그리고 슬라이싱의 경우 squares[1:3]처럼 [인덱스번호a:인덱스번호b]로 넣어주면 a부터 b의 직전값까지 잘라서 반환한다. 

 

튜플(tuple)

 튜플은 강의에서 아직 배우지 않았지만 공식문서로 간단하게 학습해보았다. 일단 list와의 큰 차이점은 선언방식mutable 여부인 것 같다. list는 '[]'로 선언하지만, 튜플은 '()'방식으로 선언한다. 기본적인 사용법은 list와 비슷하다.

 또한 튜플은 immutable이다. 즉, 값을 변경할 수가 없다. list는 squares[0] = 50 같은 방식으로 리스트 안의 값을 변경할 수 있지만 튜플은 에러가 발생한다. 간단한 실행 예제는 아래를 참고하기 바란다.

 

#튜플 선언
test = (1,2,3)
print(test) #(1,2,3)

#튜플끼리 합치기
test2 = (4,5,6)
print(test+test2) # (1,2,3,4,5,6)

#튜플의 값 가져오기(인덱스 사용)
print(test2[0]) #4

#튜플은 immuatable이기 때문에 값 수정이 불가(에러발생)
test2[0] = 10
print(test2) #에러 발생 : 'tuple' object does not support item assignment

 

딕셔너리(dictionary)

 list처럼 단순히 값만 담아서 인덱스로 값들을 가져오는 것이 아니라, 값의 이름(변수명)으로 가져올 수 있도록 만들 수가 있다. 이를 위해 딕셔너리 타입을 사용할 수 있다. 다음과 같이 사용한다.

변수명 = {값이름1 : 값1, 값이름2 : 값2...}

값에 각각의 값이름을 붙일 수 있다. 선언은 '{}'으로 선언한다. 값이름을 변수명(variable), 식별자(identifier)라고 한다.

#딕셔너리 선언
dic = {'name':'kim', 'age':20}
print(dic) #{'name':kim, 'age':20}

#나이 가져오기
print(dic['age']) #20

#이름 가져오기
print(dic['name']) #kim

 위와 같이 변수명을 통해 변수값을 가져올 수 있다.

 

출처 : kanonxkanon.tistory.com/2288

반응형