02 파이썬 프로그래밍의 기초, 자료형
리스트, 튜플, 딕셔너리
02-3 리스트( List )
- 예를 들어 1부터 10까지의 숫자 중 홀수 모음인 1, 3, 5, 7, 9라는 집합을 생각해 보자. 이런 숫자 모음을 숫자나 문자열로 표현하기는 쉽지 않다. 파이썬에는 이렇나 불편함을 해소할 수 있는 자료형이 존재하는데 바로 리스트이다.
- 리스트는 비어있는 리스트( [] ) 일 수도 있고, 숫자 또는 문자열을 요소 값으로 가질 수도 있으며, 숫자와 문자열을 함께 요소값으로 가질 수도 있고, 리스트 자체를 요소값으로 가질 수도 있다. 즉 리스트 안에는 어떠한 자료형도 포함시킬 수 있다.
리스트의 인덱싱과 슬라이싱
- 리스트 역시 문자열처럼 인덱싱과 슬라이싱이 가능하다. 혹시 기억이 안 날 수 있으니 다시한번 보도록하자!
- 특정 인덱스값을 주지않고 변수 이름만 선언하면 리스트 전체를 출력한다.
- 이중리스트
>>> a=[1, 2, 3, ['a', 'b', 'c']]
>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
Q. 그렇다면 여기서 리스트 a에 포함된 ['a', 'b', 'c']라는 리스트에서 'a'라는 값을 뽑아내려면 어떻게 해야할까?
A. a 리스트의 마지막 요소의 첫번째 요소를 가르쳐주면된다!
>>> a[3][0]
'a'
>>> a[-1][0] #뒤에서 부터 순서를 센다면 이렇게!
'a'
- 리스트 슬라이싱은 문자열과 똑같이 인덱스가 0부터 시작된다는 것을 유의하여 사용하면 된다.
- 중첩된 리스트에서 슬라이싱하기
>>> a=[1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
[3, ['a', 'b', 'c'], 4] 가 출력된다.
>>> a[3][:2] #4번째 요소에 2번째 요소까지!
['a', 'b']
리스트 연산자
혹 C언어나 Java를 배우셨던 분이라면 배열과 비슷하다고 생각하실 수 있지만 Python의 리스트는 입력되는 요소의 자료형을 따지지
않습니다!
C/Java에서 사용하는 배열은 같은 자료형을 가진 요소들의 집합이며 Python의 리스트는 다양한 자료형들의 집합일 수도 있고 같은 자료형을 가진 요소들의 집합이 될 수도 있다.
이 이야기를 왜 하는 것 인가!?
다음과 같은 소스 코드를 입력했을 때결과값은 어떻게 나올까?
>>> a=[1, 2, 3] 일 때 a리스트 요소인 3과 문자열 "hi"를 이용하여 3hi를 만들고 싶다면?
>>> a[2]+"hi" 를 사용하면 된다?
리스트의 수정, 변경과 삭제
- 리스트 요소 하나를 수정할 때는 해당 인덱스를 가르켜서 값을 변경하면 된다.
- 리스트의 연속된 요소를 수정할 때는 슬라이싱을 이용하여 인덱스를 가르켜서 값을 변경하면 된다.
- [] 사용해 리스트 요소 삭제하기
>>> a=[1, 2, 3, 4]
>>> a[1:3] = []
>>> a
[1, 4]
- del 함수 사용해 리스트 요소 삭제하기
del 함수는 파이썬이 자체적으로 가지고 있는
삭제 함수이며 다음과 같이 사용합니다 :)
>>> a=[1, 2, 3, 4]
>>> del a[1]
>>> a
[1, 3, 4]
리스트 관련 함수들
02-4 튜플( Tuple )
- 몇 가지 점을 제외하고는 리스트와 비슷하다.
- 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마( , )를 반드시 붙여야 한다.
- 여러개의 값을 입력할 때 ( ) 괄호를 생략해도 무방하다.
- 프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 주저하지말고 튜플을 사용해야 한다.
|
|
- 튜플도 인덱싱과 슬라이싱을 사용할 수 있다.
- 더하기(두 개의 tuple 합치기)와 곱하기(반복) 연산이 가능하다.
02-5 딕셔너리( Dictionary )
- 사람은 누구든지 "이름"="홍길동", "생일"="몇 월 몇 일" 등으로 구분할 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있다.
- 요즘 사용하는 대부분의 언어들도 이러한 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열( Associative array ) 또는 해시( Hash )라고 한다, 파이썬에서는 이러한 자료형을 딕셔너리라고 하는데 단어 그대로의 해석은 사전이라는 의미이다.
- 딕셔너리는 Key와 Value라는 것을 한 쌍으로 갖는 자료형으로, Key를 통해 Value를 얻는다.
- 리스트나 튜플처럼 순차적으로 해당 요소 값을 가지지 않는다 (인덱스 x)
- Key에는 변하지 않는 값을 사용하고, Value에는 변하는 값(변수)과 변하지 않는 값(상수) 모두 사용할 수 있다.
주 의 사 항
1. 딕셔너리를 만들 때 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다는 것!
이때, 꼭 앞에 쓴 것이 무시되는 것은 아니고 어떤 것이 무시될지는 예측할 수 없다.
2. Key에 List는 쓸 수 없다! 하지만, Tuple은 Key로 쓸 수 있다!
why? Key는 변하면 안되는데, List는 값의 수정이 가능하지만 Tuple은 값의 수정을 허용하지 않기 때문이다!
딕셔너리 쌍 추가, 삭제하기
딕셔너리 사용하는 방법
- 리스트나 튜플, 문자열은 요소값을 얻어내고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 이용했다. 하지만, 딕셔너리는 단 한가지 방법 뿐이다. 바로 Key를 사용해서 Value값을 얻어오는 것이다.
- 어떤 Key의 Value를 얻기 위해서는 '딕셔너리변수[Key]'를 사용한다.
>>> grade={'pey':10, 'juliet':99}
>>> grade['pey']
10
딕셔너리 관련 함수들
>>> a={'name':'pey', 'phone':'0119993323', 'birth':'1118'} 를 기준으로 예시를 설명한다.
'개발자 레니는 지금 - > 소프트웨어와 함께' 카테고리의 다른 글
ING - [ Do it! Jump to Python ] 04 프로그램의 입력과 출력은 어떻게 해야 할까? (0) | 2017.07.27 |
---|---|
[ Do it! Jump to Python ] 03 프로그램의 구조를 쌓는다! 제어문 (0) | 2017.07.26 |
[ Do it! Jump to Python ] 02-3 파이썬 프로그래밍의 기초, 자료형 - 집합자료형, 참과 거짓, 변수 (0) | 2017.07.26 |
[ Do it! Jump to Python ] 02-1 파이썬 프로그래밍의 기초, 자료형 - 숫자형, 문자열 자료형 (0) | 2017.07.24 |
[ Do it! Jump to Python ] 01 파이썬이란 무엇인가? (0) | 2017.07.20 |