Day 1 - Environment, Variable & Operator, Data structure

MyeongChan Jeong·2022년 10월 13일

AI 자연어처리 교육과정


1. Environment

- 리눅스 환경에서 작업하자 (서버 호환이 쉬움, 라이브러리 설치 용이)

- 윈도우와 리눅스를 함께 쓰는 법

- 윈도우 운영체제에서 WSL을 설치한 후 그 위에서 Visual Studio Code(IDE)를 실행하고, 패키지 관리에 ananconda 이용



2. Variable & Operator

- in-place 연산과 out-place 연산의 차이

a += 1 # in-place 연산
a = a + 1 # out-place 연산

in-place: 기존 객체를 수정 시도, 불가능할 시(불변타입일 경우) 새로운 객체 생성(out)

out-place: 명시적으로 새로운 객체 생성


a = 10 # int(원시자료형)는 불변(immutable) 타입
b = a
a += 1

a가 새로운 주소를 가리키게 됨(b에 변화 X)


a = [1, 2, 3] # list는 가변(mutable) 타입
b = a
a += [4] # in-place 연산으로 객체에 변화생김

a가 변화하고, 결국 b도 변화


a = [1, 2, 3] # list는 가변(mutable) 타입
b = a
a = a + [4] # out-place 연산으로 새로운 객체 생성

a가 새로운 주소를 가리키게 됨(b에 변화 x)



3. Data structure

- *(asterisk)의 사용: unpacking

t = [1,2,3,4,5]
a, b, c, _, _ = t   # '_'는 관습적으로 사용하지 않는 변수에 사용

a, *b, c = t     # *로 명시적으로 할당되지 않는 남는 부분 리스트로 묶음

(1, [2,3,4], 5)

- Dictionary 자료형 특징

  • Dict는 Hash로 구현: indexing 속도가 O(1), 처음부터 자료가 index(key)와 함께 저장되는 형태이기 때문에 모든 내용을 조회하지 않는다.
  • Dict의 value에는 list, str 등 아무 객체나 할당 가능하다.
  • Dict의 key만 모여있는 형태 -> 집합형(Set)

- set 자료형 특징

  • index 존재하지 않음(순서 없다)
  • set처럼 순서없는 불변 타입 형성 -> frozenset({1,2,3})
  • 수학적 집합 연산자가 존재
  • s1 & s2 (교집합)
  • s1 | s2 (합집합)
  • s1 - s2 (차집합)
  • s1 ^ s2 (배타적합집합 = 합집합 - 교집합)



profile
정명찬, ML/AI Engineer

0개의 댓글