튜기's blogggg

자료형 종류

by St1tch

1. 문자열 

  • 문자열은 문자들(텍스트)를 표현하기 위한 자료형이다. 
  • 단일 인용부호('') 혹인 이중인용부호("") 안에 묶여진 문자들의 모임. 

>>> 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) # 데이터 개수 

>>> L[1] # 두번째 자료. 옵셋은 0부터 시작함. 

>>> L[-1] # 마지막 자료. 

>>> 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) 

>>> t[0] 

>>> t[-1] 

>>> 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)]



출처 : http://devanix.tistory.com/105

 

블로그의 정보

튜기's blogg(st1tch)

St1tch

활동하기