hojeomi blog
Day 2. 파이썬 기초 문법 본문
1. 용량 단위¶
- 1bit * 8 = 1byte
- 1byte * 1024 = 1MB
- 1MB * 1024 = 1GB 정수형(int): 32bit = 4byte 사용
2. 리스트¶
1)¶
In [12]:
t = [1,2,3]
a,b,c = t
print(a,b,c)
2) 2칸 단위 출력, 역 슬라이싱¶
In [14]:
cities = ['서울','부산','경주','울산','대전','강릉']
# 2칸 단위 출력
print(cities[::2])
In [13]:
# 역 슬라이싱
print(cities[::-1])
2. 얕은 복사(shallow copy) vs. 깊은 복사(deep copy)¶
1) 얕은복사: 값을 복사하는 것이 아니라 메모리 주소를 참조함¶
In [17]:
a = [1,2,3]
b = a
print(b)
a[0] = 999
print(b) # a의 요소를 바꿨는데 b의 요소 또한 바뀜
*🎈 Question. 아래 경우는 왜 b가 a의 변화를 반영하지 않나? → mutable과 immutable의 차이¶
- mutable: 객체 생성 후 값이 변할 수 있음
- immutable: 객체 생성 후 값이 변할 수 없음
In [21]:
a = 10
b = a
print(b)
a = 16
print(b)
1-2) 얕은 복사에서 재할당¶
- 위와 같이 b = a, b에 a를 할당하면 같은 메모리 주소를 바라보게 되지만, b에 다른 값을 할당하면 재할당이 이루어지며 b의 메모리 주소가 변경됨. 즉, a와 b는 다른 값을 가지게 됨
In [24]:
# 방법 1. copy()
a = [1,2,3]
b = a.copy()
print(b)
a[0] = 999
print(b) # a의 요소를 바꿔도 b의 요소는 바뀌지 않음
In [25]:
# 방법 2. a[:]
a = [1,2,3]
b = a[:]
print(b)
a[0] = 999
print(b) # a의 요소를 바꿔도 b의 요소는 바뀌지 않음
2) 깊은 복사: 내부 객체들까지 모두 새롭게 만들어짐¶
In [28]:
# deepcopy()
import copy
a = [1,2,3]
b = copy.deepcopy(a)
print(b)
a[0] = 999
print(b)
3. 시퀀스 자료형¶
- 파이썬에서 리스트, 튜플, range, 문자열은 시퀀스 자료형임
- set은 아님
- 특징: 인덱싱, 슬라이싱(특정 구간의 값을 취할 수 있음), 연결(+ 연산자로 연결 가능), 반복(* 연산자로 반복 가능), 멤버확인(in 키워드 사용), 길이정보(len 함수 사용)
'AI > Course' 카테고리의 다른 글
3-2. Pythonic Code (0) | 2021.01.21 |
---|---|
Day 3-1. Python Data Structure (0) | 2021.01.20 |
Day 1. 파이썬 개요 (0) | 2021.01.18 |
Day 0-2. 윈도우 Terminal - cmder, Windows Terminal (0) | 2021.01.18 |
Day 0-1. File System & Terminal Basic (0) | 2021.01.18 |
Comments