낭만적(?) 일상/세미나, 교육

패캠_데이터사이언스스쿨_파이썬2일차

Soo♥JJeong 2019. 4. 1. 03:24

파이썬 2일차에는 파이썬에서 사용하는 데이터의 종류에 대해 배웠다.

1. Numbers

2. Boolean

3. String

4. List : [ ]

5. Tuple : (  )

6. Dictionary : {  }

7. Set

 

아래는 jupyter notebook으로 실습한 내용들. 이탤릭체는 결과물이다.

 

 

1. Numbers : 숫자 데이터 타입, int(정수)와 flout(실수)

2. Boolean : True, False

3. String :: 문자 데이터 타입, ", ' 둘다 사용가능, """ 세개 사용하는 경우 멀티라인 문자열

   - 문자열 offset(오프셋)인덱스 : 특정위치의 문자 선택

 

a = 'abcdefghijk"

 

# [start : end]

a[1:3], a[-2], a[:]

('bc', 'jk', 'abcdefghijk')

 

# [start : end : strid]

a[::2], a[::3], a[2,8,2], a[::-1]

(acegik', adgj', 'ceg', 'kjihgfedcba')

 

#len (문자 길이 length)

len(a)

11

 

a[4:10][3:5]

hi

 

Quiz . data변수를 선언 후 문자열 오프셋을 이용하여 짝수만 거꾸로 출력되도록 코드를 작성하세요.

 

data = "0123456789"

result = data[2::2][::-1]

result

 

# 문자열 함수

a = " FAST campus datascience "

 

#대문자로 바꿔주는 함수 (저장되지는 않음)

a.upper(a)

' FAST CAMPUS DATASCIENCE '

 

# 소문자로 바꿔주는 함수

a.lower(a)

' fast campus datascience '

 

dir(a) -- 사용할 수 있는 모든 함수를 보여줌.

 

a.find("c") --c가 몇번째 문자열에 있는지 확인(여러번 나올 경우 가장 빠른)

6

 

a.count("a") -- a가 몇번 나오는지

3

 

#공백제거

a.lstrip(), a.rtsrip(), a.strip()

 

#replace : 문자열 변환

a.replace("a", "b")

' Fast cbmpus dbtbscience '

 

price = "5,000"

result = price.replace(",","")

type(int(result)

int

 

#체이닝 --문자열이 요런 패턴인지 맞으면 True, 틀리면 False

a, a.endswith("science"), a.rstrip() endswith("science")

(' FAST campus datascience ' , False, True)

 

# join : 리스트 데이터를 문자열로 바꿔줌

ls = ["test", "data", "fast"]

"," join(ls)

'test, data, fast'

 

4. List : [ ]

  - 순서가 있는 데이터 집합

  - collection, iterable

  - iterable : '집합' 그 자체보다는 '개별 원소를 반복적으로 셀 수 있는"이라는 문맥적인 의미가 있다고 함. --googling

 

#리스트 선언

a = [1, 2, 3]

b = ["fast", "campus", "data"]

c = [1, 2, [3, 4]]

a,b,c

([1, 2, 3], ["fast", "campus", "data"], [1, 2, [3, 4]]

 

# offset

ls = ["fast", "campus", "data", "python"

ls[1], ls[-1], ls[::-1], d[2][1]

 

('campus',

 'python',

 ['python', 'data', 'campus', 'fast'],

 4)  -- 위에서 선언한 d의 0,1,2번째의 0,1번째 수

 

 

# 데이터 추가

ls.append("test")

ls

[ 'fast', 'campus', 'data', 'python', 'test' ]

 

 

ls.sort(key=len)

ls

[ 'data', 'fast' , 'test', 'campus', 'python']

 

# 리스트 요소 끄집어 내기

ls.pop()

python

 

ls

[ 'data', 'fast' , 'test', 'campus'] -- 위에서 python을 끄집어 내서 삭제했음.

 

# 리스트 데이터 수정

ls[1] = "FAST"

ls

[ 'data', 'FAST' , 'test', 'campus' ]

 

리스트의 복사

 - 얕은 복사 : 주소 값만 복사

 - 깊은 복사  : 메모리 상에서 복사

 

a = [1,2,3]

b=a

print (a, b)

[1,2,3][1,2,3]

 

a[2] = 4

print(a, b)

[1,2,4] [1,2,4]

 

 

c= a.copy()

print(a, c)

[1,2,4] [1, 2, 4]

 

a[2] = 5

a, b, c

[1, 2, 5] [1, 2, 5] [1, 2, 4]  -- b는 얕은복사, c는 깊은 복사

 

 

5. Tuple : ()

   - 리스트와 같이 순서가 있는 데이터 타입

   - 데이터의 수정이 불가능

   - 리스트보다 메모리 자원 적게 사용

 

# 튜플 선언

tp1 = 1,2,3

tp2 = "a", "b"

tp3 = (1, "b")

tp1, tp2, tp3, type(tp2)

 

((1,2,3), ('a', 'b') (1, 'b'), tuple)

 

tp1[2], tp1[::-1]

(3, (3,2,1))

 

 

6. Dictionary : {}

   - 데이터의 순서가 없고, key, value의 쌍으로 데이터가 이루어짐

   - 선언 {key1: value2 , key2 : vlaue2}

   - key값은 문자열이나 정수 데이터타입만 사용가능.

 

dic = {

     1 : "one".

     "A" : ["data", "python"],

     "숫자" : 1234,

     2: "two",

}

type(dic), dic

(dict, {1 : 'one', 'A' : [data, python'], '숫자' : 1234, 2 : two})

 

 

# update

dic1 = {1: "a", 2: "b"}

dic2 = {3: "d", 2: "c"}

print(dic1, dic2)

dic1.update(dic2)

dic1

 

{1: 'a', 2: 'b'}{3: 'd', 2: 'c'}

{1: 'a', 2: 'c', 3: 'd}

 

 

7. 집합 Set

  - 중복되는 데이터가 없는 데이터타입

  - 교집합, 합집합, 차집합과 같은 집합 연산 가능

  - 리스트에서 중복되는 데이터 제거할 떄, 공통 데이터 뽑아낼 때 사용

  - 수정이 안되므로 리스트로 형 변환 후 수정해야함

  - 형 변환할 때 순서가 항상 보장되지는 않음.

 

ls = [ 1,2,3,4,1,2,3]

s = set[ls]

type(s), s

(set, {1,2,3,4} )

 

s1 = set([1,2,3,4])

s2 = set([3,4,5,6])

 

#교집합

s1&s2 , s1.intersection(s2)

({3,4}, {3,4})

 

#합집합

s1 | s2, s1.union(s2)

({1,2,3,4,5,6}, {1,2,3,4,5,6})

 

#차집합

s1-s2, s1.difference(s2)

({1,2}, {1,2})

 

 

 

다 쓰고 보니 외계어 같긴 하다.  데이터사이언스스쿨에서 배운 내용들을 매일매일 블로그에 복습을 하려고 한다. 나중에 피가되고 살이되겠지!