list가 모디? set은 모디..? 자주 쓰이(ㄹ것만같)는 자료형과 range() 함수!
Operators
%: Modular operator n이 짝수라면 n%2의 결과가 0 n이 홀수라면 n%2의 결과가 1
Mapping
[문제1] 다음과 같은 mapping이 성립하도록 일차 함수 f(x)를 정의하시오 f(0) = 0 f(1) = 0.2 f(2) = 0.4 … f(9) = 1.8
[풀이1] 그래프를 그려서 수식을 만들 수 있음. 원점을 지나가기 때문에 상수가 0, 기울기를 구하면 0.2 f(x) = 0.2x
[풀이2] f(0) ax + b로 두고, x에 0을 넣어서 b가 0인걸 구함 a도 우리에게 주어진 숫자만 가지고 구할 수 있음 f(1) = 0.2 a*1 = 0.2 a = 0.2 ==> 우리가 아는 정보만 가지고 그래프를 그려보니 직선! 그렇다면 1차식 그려보니 곡선? 그렇다면 n차식 랜덤으로 한끝발 차이로 2차원에 대입했더니 안되고 3차원에 대입했더니 딱 맞는 경우가 있을 수 있음 오차를 어떻게 줄일 수 있는가 고민해보자
[문제2] 다음과 같은 mapping이 성립하도록 일차 함수 f(x)를 정의하시오 f(0) = -1 f(1) = -0.8 f(2) = -0.6 … f(9) = 0.8
[풀이] f(x) = ax + b f(0) = a0 + b = -1 –> b = -1 f(1) = a1 - 1 = -0.8 –> a = 1.8 f(x) = 1.8x - 1
List
A set of values are stored in a list n = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] But not exactly a set (수학에서의 집합) 왜냐하면 중복되는 값도 저장될 수 있기 때문 s = [0, 0, 0]
하지만 파이썬에서 리스트와 집합은 혼용되어 사용되기도 함
But 집합과 다르게 순서가 존재함 [작은수, 조금더큰수, 조금더더큰수]
for loop and selection
y = [x / 10 for x in n] n에는 [0, 1, 2]가 존재할때 n을 차례로 x에 대입하여 새로운 리스트를 만듦 –> y = [0/10, 1/10, 2/10]
n = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [x % 2 for x in n] –> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
m = [1, 2] n = [3, 4] y = [t*u for t in m for u in n] –> y = [3, 4, 6, 8] 카테이션 프로덕트(곱) 집합이 결과로 나옴
x를 2로 나누어서 나머지가 0이면 x로 새 리스트n을 만듦 ==> 착수 찾는 방법
m = [1, 2, 3, 4, 5, 6]
n = [x for x in m if x % 2 == 0]
–> n = [2, 4, 6]
range() function
0 ~ 999을 리스트에 넣어야한다면?
m = [x for x in range(1000)]
-100 ~ 100 까지의 숫자는 어떻게 표현하지?
[x - 100 for x in range(201)]
s1 = [x2 for x in range(10)] –> 0~9 * 2 = 0, 2, 4… 짝수의 모음 s2 = [x2 + 1 for x in range(10)] –> 홀수의 모음
1
range(n부터, m전까지, i씩 증가)
[x for x in range (1,10)] –> [1, 2, 3, 4, 5, 6, 7, 8, 9]
[x for x in range (3,10)] –> [3, 4, 5, 6, 7, 8, 9]]
[x for x in range (3,10,2)]
–> [3, 5, 7, 9]
Wrap up
- A list is not a set
- A list can be constructed from other lists
- We could choose values when building a new list
- Python 에서 list는 여러값의 모임
- Python 에서 set builder란? 이미 정의된 list를 이용하여 새로운 list를 정의할 수 있도록 해주는 python 구문