자료형 종류
by St1tch1. 문자열
- 문자열은 문자들(텍스트)를 표현하기 위한 자료형이다.
- 단일 인용부호('') 혹인 이중인용부호("") 안에 묶여진 문자들의 모임.
>>> print 'Hello World!' Hello World! >>> print "Hello World!" Hello World! |
- 인덱싱(indexing)으로 각각의 문자를 취할 수 있다.
>>> s = "Hello World!" >>> s[-2] 'd' |
- 슬라이싱(slicing)으로 부분 문자열을 취할 수 있다.
>>> s[1:3] 'el' >>> s[0:5] 'Hello' |
- 슬라이싱의 시작 위치가 생략되면 '처음부터', 마지막 위치가 생략되면 '끝까지'의 의미
>>> s = 'Hello' >>> s[1:] 'ello' >>> s[:3] 'Hel' |
- 슬라이싱은 세가지 값을 갖을 수 있다.[start:stop:step] (확장슬라이스(extended slice))
- 파이썬 2.3부터는 내장 시퀀스 자료형에 몇 단계를 건너뛸까를 정하는 step이 지원.
- 시퀀스 자료형인 문자열, 리스트, 튜플에 모두 적용.
>>> s = 'abcd' >>> s[::2] # 2칸 단위로 'ac' >>> s[::-1] # 거꾸로 'dcba' |
- 연결(+)과 반복(*)의 연산도 적용.
>>> 'Hello' + ' ' + 'World' 'Hello World' >>> 'Hello' * 3 'HelloHelloHello' >>> '-' * 60 '------------------------------------------------------------' |
- 문자열은 값이 변경되지 않는다.
>>> s = 'Hello World' >>> s[0] = 'h' Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> s[0] = 'h' TypeError: 'str' object does not support item assignment |
- 만일 문자열 변경을 원하면 슬라이싱과 연결하기를 이용.
>>> s = 'h' + s[1:] >>> s 'hello World' |
2. 리스트
- []를 사용하는 리스트는 임의의 객체를 저장하는 집합적 자료형.
- 각 자료는 순서를 가지고 있고, 순서에 의해서 접근.
>>> L = [1,2,3] # 세개의 자료를 갖는 리스트 >>> len (L) # 데이터 개수 3 >>> L[1] # 두번째 자료. 옵셋은 0부터 시작함. 2 >>> L[-1] # 마지막 자료. 3 >>> L[1:3] # 슬라이싱 [2, 3] >>> L * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> L = range(10) >>> L [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> L[::2] # 확장 슬라이스 [0, 2, 4, 6, 8] >>> L[::-1] # 확장 슬라이스 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] >>> L.append(4) # 리스트 마지막에 자료 추가 >>> L [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 4] >>> del L[0] # 리스트 자료 삭제. >>> L [1, 2, 3, 4, 5, 6, 7, 8, 9, 4] >>> L.reverse() # 리스트 순서를 거꾸로 바꾼다. >>> L [4, 9, 8, 7, 6, 5, 4, 3, 2, 1] >>> L.sort() # 리스트를 오름 차순 정렬. >>> L [1, 2, 3, 4, 4, 5, 6, 7, 8, 9] |
3. 튜플
- ()를 사용하는 튜플도 문자열과 리스트와 유사한 특성을 가는다.
>>> t = (1,2,3) >>> len(t) 3 >>> t[0] 1 >>> t[-1] 3 >>> t[0:2] (1, 2) >>> t[::2] (1, 3) >>> t + t + t (1, 2, 3, 1, 2, 3, 1, 2, 3) >>> t * 3 (1, 2, 3, 1, 2, 3, 1, 2, 3) |
- 튜플과 리스트의 차이 – 튜플은 값의 변경(X), 리스트는 값의 변경(O)
- 또한 리스트는 다양한 메쏘드를 갖고, 튜플은 그렇지 않다.
>>> t = (1,2,3) >>> t[0] = 100 Traceback (most recent call last): File "<pyshell#89>", line 1, in <module> t[0] = 100 TypeError: 'tuple' object does not support item assignment
>>> L = [1,2,3] >>> L[1] = 200 >>> L [1, 200, 3] |
4. 사전
- 사전은 옵셋이 아닌 키를 사용하여 값을 얻는 자료 구조.
- 사전에 x라는 키(key)를 주면 값 y를 돌려준다.
- 사전은 초기화할 때 {}를 사용. - 초기값은 키:값의 형태로 준다.
>>> d = {'one':'hana', 'two':'dul', 'three':'set'} >>> d {'three': 'set', 'two': 'dul', 'one': 'hana'} >>> d['one'] 'hana' >>> d['four'] = 'net' >>> d {'four': 'net', 'three': 'set', 'two': 'dul', 'one': 'hana'} >>> d['one'] = 1 >>> d {'four': 'net', 'three': 'set', 'two': 'dul', 'one': 1} |
- 사전은 순서에 따라 요소들을 저장하지 않는다. (키에 의해서 값을 추출)
- 사전을 -> 리스트나 튜플로 변환하는 것이 가능
>>> d = {'one':1, 'two':'dul', 'three':'set', 'four':'net'} >>> d.keys() # 키만 리스트로 출력. ['four', 'three', 'two', 'one'] >>> d.values() # 값만 리스트로 추출. ['net', 'set', 'dul', 1] >>> d.items() # 키와 값의 튜플을 리스트로 변환. [('four', 'net'), ('three', 'set'), ('two', 'dul'), ('one', 1)] |
블로그의 정보
튜기's blogg(st1tch)
St1tch