IV. 튜플 자료형
왜 튜플을 사용할까??
리스트의 항목값은 아래처럼 변화가 가능하고 튜플의 항목값은 변화가 불가능한데, 따라서 프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 주저하지말고 튜플을 사용해야 한다.
튜플과 리스트의 차이점
1. 리스트는 "[]"를 이용하지만, 튜플은 "()"를 이용한다.
2. 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
>>> tuple1 = () >>> tuple2 = (1,) ◀ 1개 요소를 가질 때는 요소 뒤에 콤마(,)를 붙여야 한다. >>> tuple3 = (1, 2, 3) >>> tuple4 = 1, 2, 3 ◀ 괄호()를 생략할 수 있다. |
튜플의 인덱싱과 슬라이싱 및 연산자
>>> t1 = {1, 2, 'a', 'b'} >>> t1[0] 1 >>> t1[3] 'b' |
인덱싱 |
>>> t1 = {1, 2, 'a', 'b'} >>> t1[1:] //t1[1]부터 끝까지 {2, 'a', 'b'} |
슬라이싱 |
>>> t2 = {3, 4} >>> {1, 2, 'a', 'b', 3, 4} | 튜플 더하기 |
>>> t2 * 3 | 튜플 곱하기 |
V. 딕셔너리 자료형
딕셔너리 자료형이란??
기본형태: {Key1:Value1, Key2:Value2, Key3:Value3 ...} ex) >>> a{1:'hi'} ◀ Key로 정수값 1, Value로 'hi'라는 문자열을 사용했다. >>> a = {'a':[1, 2, 3]} ◀ Value에 리스트를 넣는 것도 가능하다. |
딕셔너리 쌍 추가, 삭제하기
>>> a = {1:'a'} >>> a[2] = 'b' //{2:'b'} 쌍 추가 >>> a {2:'b', 1:'a'} >>> a['address'] = 'newyork' {'address':'newyork', 2:'b', 1:'a'} >>> a[3] = [1, 2, 3] {'address':'newyork', 3:[1, 2, 3], 2:'b', 1:'a'} |
딕셔너리 쌍 추가하기 [딕셔너리는 순서를 따지지 않음] |
>>> del a[1] // key가 1인 key:value 쌍 삭제 >>> a {'address':'newyork', 3:[1, 2, 3], 2:'b'} |
딕셔너리 요소 삭제하기 |
딕셔너리 사용 예 및 주의 사항
>>> grade = {'kim':80, 'jin':99} >>> grade['kim'] 80 >>> grade['jin'] 99 |
딕셔너리는 왼쪽 예 처럼 이름, 성적 같이 한 쌍으로 표현할때 편리하게 사용 할 수 있다. [딕셔너리는 key 값을 통해 Value 값을 얻음] |
>>> a = {1:'a', 2:'b'} >>> a[1] 'a' >>> a[2] 'b' |
a[1]과 a[2]는 리스트나 튜플과 전혀 다르다. 딕셔너리 변수안에서의 [] 숫자는 key에 해당한다. |
>>> a = {1:'a', 1:'b'} >>> a {1:'b'} | 동일한 Key가 존재하면 1개를 제외한 나머지 중복된 쌍은 무시된다. [어떤 것이 무시되는지는 알 수 없으므로 중복된 Key는 사용해선 안됨] |
>>> a = {[1, 2]: 'hi'} ~~ TypeError오류 발생 ~~ | 딕셔너리는 Key 값으로 리스트를 사용할 수 없다. |
딕셔너리 관련 함수들
>>> a {'name':'kim', 'add','newyork', 'birth': '0228'} >>> a.keys() dict_keys(['name', 'add', 'birth']) |
Key 리스트 만들기(keys): 해당 값의 Key만 모아서 dict_keys라는 객체를 리턴한다. [파이썬 2.7버전까지는 dict_keys가 아닌 리스트를 리턴함] |
>>> for k in a.keys(): . . . print(k) . . . add birth name |
dict_keys객체 활용(1) |
>>> list(a.keys()) ['add', 'birth', 'name'] | dict_keys객체 활용(2): 리스트로 변환 |
>>> a.value() | Value 리스트 만들기(values): Value값만 얻을 때 사용 하며, dict_values 객체를 리턴한다. |
>>> a.items() dict_items([('name','kim'), ('add', 'newyork'), ('birth', '0228')]) | Key:Value 쌍 얻기(items): items함수는 key와 value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다. |
>>> a.clear() >>> a {} | Key:Value 쌍 모두 지우기(clear): clear함수는 딕셔너리 안의 모든 요소를 삭제한다. |
>>> a = {'name':'kim', 'add':'newyork', 'birth':'0228'} >>> a.get('name') 'kim' >>> a.get('add') 'newyork' >>> a.get('nokey') //None을 리턴함 >>> a.get('nokey', 'sub') //Key가 없을경우 디폴트 값 반환 sub | Key로 Value얻기(get) |
>>> a = {'name':'kim', 'add','newyork', 'birth':'0228'} >>> 'name' in a True >>> 'email' in a False | 해당 Key가 딕셔너리 안에 있는지 조사하기(in) |
V. 집합 자료형
집합 자료형이란?
집합과 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형이다. 이 자료형은 중복을 허용하지 않으며, 순서가 없다.
>>> s = set('Hello') >>> s {'e', 'l', 'o', 'H'} // 'l'은 중복되어 1번만 써졌고, 순서는 정해져있지 않다. |
set 자료형은 순서가 없으므로, 역시 인덱싱으로 값을 얻을 수 없다. 그래서 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 해야한다.
>>> s = set([1, 2, 3]) >>> l = list(s) //리스트로 변환 [1, 2, 3] >>> l[0] 1 >>> t = tuple(s) //튜플로 변환 >>> t (1, 2, 3) >>> t[0] 1 |
집합 자료형의 교집합, 합집합, 차집합
>>> s1 = set([1, 2, 3, 4, 5, 6]) >>> s2 = set([4, 5, 6, 7, 8, 9]) |
>>> s1 & s2 {4, 5, 6} |
교집합: '&' 기호를 이용하거나, intersection함수를 이용한다. |
>>> s1.intersection(s2) {4, 5, 6} | |
>>> s1 | s2 {1, 2, 3, 4, 5, 6, 7, 8, 9} | 합집합: '|' 기호를 이용하거나, union함수를 이용한다. |
>>> s1.union(s2) | |
>>> s1 - s2 {1, 2, 3} >>> s2 - s1 { 8, 9, 7} | 차집합: '-' 기호를 이용하거나, difference함수를 이용한다. |
>>> s1.difference(s2) {1, 2, 3} >>> s2.difference(s1) {8, 9, 7} |
집합 자료형관련 함수들
>>> s = set([1, 2, 3]) >>> s.add(4) >>> s {1, 2, 3, 4} | 값 1개 추가하기(add) |
>>> s = set([1, 2, 3]) >>> s.update([4, 5, 6]) >>> s {1, 2, 3, 4, 5, 6} | 값 여러 개 추가하기(update) |
>>> s = set([1, 2, 3]) >>> s.remove(2) >>> s {1, 3} | 특정 값 제거하기(remove) |
VI. 파이썬에서의 자료형
자료형의 참과 거짓
자료형 |
값 |
참 or 거짓 |
문자열 |
"python" |
참 |
"" |
거짓 |
|
리스트 |
[1, 2, 3] |
참 |
[] |
거짓 |
|
튜플 | () | 거짓 |
딕셔너리 | {} | 거짓 |
숫자형 | 0이 아닌 숫자 | 참 |
0 | 거짓 | |
| None | 거짓 |
자료형에서 참과 거짓 활용
>>> a = [1, 2, 3, 4] >>> while a: //a가 참인 동안 . . . a.pop() //마지막 요소를 하나씩 꺼냄 . . . 4 3 2 1 |
리스트 a에서 a.pop()으로 요소를 한개씩 꺼내는데, 결국 "[]"가 되어 거짓이 되어, 조건문이 종료된다. |
>>> if []: //만약 [ ]가 참이면 True출력 . . . print("True") . . . else: //만약 [ ]가 거짓이면 False출력 . . . print("False") . . . False | if문에서 참 거짓 활용 |
>>> if [1, 2, 3]: . . . print("True") . . . else: . . . print("False") . . . True // [1, 2, 3]은 요소값이 있으므로 참 |
자료형의 값을 저장하는 공간, 변수
집합과 아래 코드처럼, a = 3이라고 하면 3이라는 값을 가지는 정수 자료형(객체)이 자동으로 메모리에 생성된다. a는 변수의 이름이며, 3이라는 정수형 객체가 저장된 메모리 위치를 가리키게 된다. 즉, 변수 a는 객체가 저장된 메모리 위치를 가리키는 레퍼런스라고도 할 수 있다.
>>> a = 3 |
※파이썬에서 '3'은 상수가 아닌 정수형 객체이다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 4-1. 파이썬에서 사용되는 자료형 (0) | 2018.04.03 |
---|---|
[파이썬] 3. 파이썬의 기초 (0) | 2018.01.02 |
[파이썬] 2. 파이썬 설치하기(윈도우, 리눅스) (1) | 2017.12.28 |
[파이썬] 1. 파이썬에 대해서 알아보자 (0) | 2017.12.28 |