레이블이 Python인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Python인 게시물을 표시합니다. 모든 게시물 표시

2009년 11월 19일 목요일

Python3 - 자료구조(Set, Tuple, Dictionary)

Set

 

보통 알고 있는 집합과 유사함.

할당시 중괄호({})를 사용한다.

Ex)

a = {1, 2, 3}

b = {2, 3, 4}

 

Set 연산

 

합집합(union, |)

a.union(b)                     // {1, 2, 3, 4}

a | b                             // {1, 2, 3, 4}

 

교집합(itersection, &)

a.intersection(b)           // {2, 3}

a & b                           // {2, 3}

 

차집합(difference)

a - b                           // {1}

 

 

 

 

Tuple

 

리스트와 유사하나 읽기전용. 즉, 생성시에 만들어진 원소만으로 이루어진다. (추가, 삭제 안됨, 마치 const 인 것으로 생각하면 좋을 것 같음)

생성은 괄호(())를 사용

 

Ex)

t = (1, 2, 3)

(a, b) = (1, 2)                    // print (a, b)로 하면 1 2가 출력됨

 

 

list, set, tuple은 전용의 생성자 함수 list(), set(), tuple()을 가지고 있으며 이를 이용하여 언제든지 변환 가능

a=set((1, 2, 3))                 // a는 set

b = list(a)                         // b는 list

c = tuple(b)                      // c는 tuple

 

 

Dictionary

 

연관배열과 같은 것으로 "키:값"의 쌍을 갖는다. (생성자 함수는 dict())

d = dict(a=1, b=2, c=3)

di = {"a" : "apple", "b" : "banana"}

 

dictionay 명과 키에 의해 값을 반환하거나 새로이 추가할 수 있다.

di["a"]                  // 'apple' 반환

di['c'] = 'cherry'    // 키는 'c' 이고 값은 'cherry'인 원소 추가

 

삭제

del문을 한 원소씩 제거

del di['c']    // 키 값이 'c'인 원소 제거

 

.clear()를 이용하여 전체 dictionary 삭제

di.clear()      // 어떤 원소도 갖지 않는 빈 dictionary로 만듦

 

함수들

.items()                 // 한 번 호출시 현재 Dictionary에서 가르키고 있는 원소를 반환하고 포인터를 다음으로 이동

                            // 반복문과 같이 혼용되어 전체 혹은 일부의 원소를 반환할 때 사용

.keys()                  // 키값만 반환

.values()               // 값들만 반환

Python 3 - 자료구조(리스트)

리스트

 

리스트는 대괄호([])를 사용하여 자료구조를 생성한다.

리스트에 참여하는 멤버는 ,를 구별자로 하여 저장한다.

Ex) colors=['red', 'green', 'gold']

 

개별값 가져오기 (슬라이싱)

  결과가 colors[1]과 같이 리스트내의 단일 원소를 명시적으로 지정한 경우는 해당 자료형

      type(colors[1])            // colors[1]의 결과는 'green'

  그렇지 않을 경우의 결과값은 리스트

      type(colors[1:2])         // colors[1:2]의 결과는 ['green']

Ex)

colors[0]     // ['red']

colors[1:2]   // ['green']

colors[-1]    // ['gold']

colors[:2]     // ['red', 'green']

 

 

리스트에 원소 추가하기

 

append(값)

  리스트의 맨 뒤에 새로운 원소를 추가한다.

  colors.append('blue')

  colors.append('blue', 'yellow')

  colors.append(['blue', 'yellow'])     // 위의 것과 다른 결과를 보이는데 위에는 원소 두개를 추가한 것이고

                                                      // 이 문장은 리스트의 원소로 새로운 리스트 ['blue', 'yellow']를 추가한다.

 

insert(위치 인덱스, 값)

  해당 인덱스에 새로운 값을 넣는다.

  colors.insert(1, 'black')                    // 1번 인덱스(즉, 두번째)에 새로운 값 'black'을 집어넣는다.

 

extend(값)

  마지막에 새로운 값을 넣는다.

  colors.extend('white', 'gray')            // 에러. 새원소를 넣을땐 다음과 같이 리스트로 넣는다.

  colors.extend(['white', 'gray'])

 

+ 연산자

  colors += ['red']

  colors += 'red'                                  // 새로운 원소로 'red'가 아닌 'r', 'e', 'd'를 추가한다.

 

 

원소 가져오기

 

index(리스트 원소, 시작위치, 끝나는 위치)

  해당 원소의 리스트를 가져온다.

  colors.index('red')               // 0

  colors.index('red', 1)           // 8

  colors.index('red', 1, 5)        // 주의할 점....해당 구간에 원소가 없으면 에러발생

 

 

count(리스트 원소)

  리스트내에 해당 원소의 갯수를 반환한다.

  colors.count('red')              // 2

 

 

pop([인덱스])

  가장 뒤의 값을 뽑아서 결과를 반환하고 해당 원소를 리스트에서 제거한다.

  인덱스를 지정하면 해당 인덱스의 원소를 반환하고 제거한다.

  colors.pop()                       // 'd', 리스트에서 빠짐

  colors.pop(1)                     // 'black', 인덱스 1인 black이 빠진다.

 

 

 

원소 삭제하기

 

remove(원소값)

  해당 값을 가지는 원소를 제거한다. 반환값 없음

  colors.remove('red')             // 동일값에 대해 앞의 'red'가 빠진다.

 

Python 3 - 변수

일반 다른 프로그래밍언어와 마찬가지로

 

변수명 = 값

 

의 형태로 사용

 

다른 스크립트 언어의 특징을 따른다.

즉, 별도의 자료형을 지정하지 않는다.

대신 생성시에 자료형을 정할 수 있다.

자료형을 확인하는 함수는 type()

Ex)

year = 2008

십진수 2008을 값으로 갖는 변수 year

 

진법

: 진수 변환함수의 반환값은 문자열임을 주의

 

8진수

0o(숫자0, 소문자 o)10

oct(10)

10진수 10을 8진수로 변환

 

16진수

0xff

hex(38)

10진수 10을 16진수로

 

2진수

0b01

bin(38)

10진수 38을 이진수로

 

 

복소수

x = 3- 4j

type(x)   // complex

실수 3

허수 -4

x.imag     // 허수부 반환

x.real      // 실수부 반환

 

 

문자(열)

x = 'string'

x[0]            // 's'

x[1:4]          // 'tri'

x[-2]           // 'ng'

x[:2]            // 'st'

x[0] = 'o'     // 안됨, 튜플과 같이 읽기전용이라고 생각하면 됨

 

문자열 관련 연산

'py' 'thon'   // 'python'

'py'+'thon'  // 'python'

'pyp * 3      // 'pypypy'