본문 바로가기

일별 학습일지

12/11 :: Data type

프리코스에서 미리 학습한 내용
복습하는 느낌으로 판서 진행

메모작성용으로 github 배우기전 마크다운 문법 연습겸 작성

Data Type

소챕터중 제일 길듯함
유연하게 받아들여주시면 좋겠다

변수 Variable

데이터 저장/관리 > 변수에 대한 개념 통해 데이터 사용할 수 있다.

  • point
    • 어떤 경우 사용
    • 연산결과 어떤 의미인지
  • Variable 변수
    • 메모리 상 데이터 저장공간
    • '=' 저장할 때 쓴다 > assignment operator cf. can't assign 오류 > 할당불가
    • (lvalue) = (rvalue)

a = 10
id(a) = (주소값 숫자 etc)

숫자 데이터

Numeric Data Types
숫자표현 범위 무한대

  • 정수형(Integer) int

type(a) : a 의 data type

  • 실수형(Floating point) float

3.14 - 4 = 0.8599.... ?

컴퓨터는 2진수가 아닌걸 인지하지 못함. 태생적 한계
이를 보완하기 위해 numpy 사용함

사칙연산 : + - * %

c = 5 
d = 2

print(c ** d) //c를 d번 곱한 것, c의 d 제곱
print(c//d) //c를 d로 나눈 몫
print(c % d) //c를 d로 나눈 나머지

문자열

String 문자(character)의 나열 의미

문자 > encoding > 숫자

유니코드 UTF-8

영어 1 바이트 / 한글 3 바이트

s = 'Hello World'
s

'Hello World'

" 큰따옴표 3개 쓰면 엔터 포함해서 작성 가능함

s = """대
한민국
"""

대  
한민국  
  • '' "" 둘다 자유롭게 쓸 수 있음
  • escape code : \n 줄바꿈 \t
  • 문자열 연산
    • 합연산은 그대로 더해져서 나감
  • 연속형 데이터

리스트

  • [,]
l1 = []
type[l1]

list

[] 1차원 리스트
[[]] 2차원 리스트
[[[]]] 3차원 리스트

Indexing

리스트의 index는 맨 앞 0으로 시작

positive index : 앞에서 부터
negative index : 뒤에서부터

인덱스 초과하면 오류발생

# 방법1. 
L2 = [1, [2, 3], 5]
temp = L2[1]

temp[0]

# 방법2. 리스트에 이어서 연속작성
L2[1][0] 

// 2

List Slicing 의 규칙

뒤에서 하나를 뺀다던가, Step by Step 정리하기

L[a:b] # a부터 b 미만 

시작 inddex 생략 = 자동으로 index 는 0
끝 index 생략 = index 는 리스트의 길이

L[2:len(L)] == L[2:]
# 끝 index 
  • List 사칙연산
    • 곱하기? 동일한 내용 반복

List 관련함수

  • 순서대로 추가하기 : .append()
L = [] L.append(3) L.append(2) // [ 3, 2 ] - 순서대로 정렬됨`
  • 원소정렬하기 : .sort(reverse = False or True)
L = [ 4 , 3, 16 ]

# 오름차순 L.sort(reverse = False)

// [3, 4, 16]

# 내림차순 L.sort(reverse = True)

// [16, 4, 3]`
  • 리스트 뒤집기(정렬 X) : .reverse()
L = [4, 3, 16] L. reverse() 

//[16. 3. 4] 

L[::-1] 
#이건 numpy 할 때 설명해줄 예정
  • 제거하기 : .pop()

튜플 Tuple

소괄호 사용 ()

List 변경가능 mutable vs Tuple 변경 불가 immutable

못바꾼다 = 크기가 고정된다 / 데이터

해서 튜플에서는 딱히 연산안해서 함수 안외워도 된다

집합 Set

  • Dictionary 자료형도 {} 사용하기에,
  • 반드시 Set() 으로 생성해야한다. if {} 생성 = 빈 dictionary 생성됨(집합 x)*
  • 중복 허용 x > 원소 종류 판별 Good
  • 순서 존재 x = index 없음
  • 연산
    • 교집합 : s1 & s2
    • 합집합 : s1 | s2
    • 차집합 : s1 - s2 != s2 - s1

집합 원소의 uniqueness 활용 case


# 원소 종류 구하기
L = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4,]
set(L)  # Type conversion

// {1, 2, 3, 4, 5, 6}

# 서로 다른 원소의 개수는?
len(set(L))

// 6

집합 함수

  • 하나 추가하기 : .add()
  • 多 추가 : .update({a,b}) # sequence 가능 = list 나 tuple 가능
  • 제거 : .remove()

Dictionary 사전

key - value 방법을 통해 저장 > pandas 에서 엄청 많이 씀

순서가 아닌 의미가 이쓴 값을 통해서 데이터 접근 가능

indexing 하려는 key 미존재 > assign 하면 key-value pair 추가됨

Hash Table

{key : value, key2 : value2, ...)

*중요 : key가 될 수 있는 data type = immuatble (수정 불가) / list, dictionary, set 빼고!! = int, float, str, tuple *

Dictionary 함수

  • 모든 keys 보기 : .keys()
  • 모든 value 보기 : .values()
  • key, value 쌍으로 보기 : .items()

d.keys, d.values, d.items 라는 객체로 선언이 되는것 (어려우니 알고만 있기)
= list는 아니다
= .insert() 불가

  • 원소가져오기 : .get()
D.get('surname','Lee') # get 함수를 활용, default 값을 지정

// 'Lee'
  • Sequence 에 해당 data 존재여부 확인 : in
"phone" in D
// True

충분히 data 타입에 대한 숙지 후 다른 강의로 진행추천 복습이 중요

'일별 학습일지' 카테고리의 다른 글

12/20 :: Ideation  (0) 2023.12.20
12/18 :: 실시간  (0) 2023.12.18
12/13 :: 실시간  (0) 2023.12.13
12/12 :: IF, for, while  (0) 2023.12.12
12/12 :: 특강  (0) 2023.12.12