일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- async
- crud
- S3
- SSA
- pandas
- 튜플
- RDS
- flask
- SAA
- lambda
- socket io
- 카톡
- Props
- 파이썬
- AWS
- 중급파이썬
- Class
- git
- NeXT
- TypeScript
- MongoDB
- EC2
- 채팅
- wetube
- merge
- docker
- dict
- react
- node
- Vue
- Today
- Total
목록중급파이썬 (7)
초보 개발자
[키가 존재할 때와 존재하지 않을 때] d = {'red':3, 'white':2, 'blue':4} d['red'] = 1 # 키 'red'의 값을 1로 변경 d {'red':3, 'white':2, 'blue':4} 여기선 d['red'] = 1 를 실행했을 때 이미 d안에 'red'라는 키값이 존재 하니까 그에 대당하는 값을 1로 바꾼다. d = {'white':2, 'blue':4} d['red'] = 1 # 키 'red' : 1추가 d {'white':2, 'blue':4, 'red':1 } 반대로 이와 같은 경우 d안에 'red'에 해당하는 키가 존재하지 않으니까 이번에는 새로운 키와 값의 추가로 이어진다. 그런데 저장되어 있는 값을 참조하는 경우에는 얘기가 좀 달라진다. d = {'red':..
[iterable 객체와 매개변수] 이번에 살펴 볼내용 4가지를 정리하면 다음과 같다. func(*iterable) iterable 객체를 전달하면서 *을 붙여서 함수 호출할 때 func(**dict) dict 객체를 전달하면서 **을 붙여서 함수 호출할 때 def func(*args) 함수를 정의하면서 매개변수 args에 *붙일 때 def func(**args) 함수를 정의하면서 매개변수 args에 **붙일 때 먼저 다음 두가지에 대해 살펴보려고한다. 이 둘은 객체를 전달하는 과정에서 언패킹이 진행되는 상황이다. (리스트, 튜플, 문자열 모두 iterable 객체이다.) *를 묶는다로 이해하면 되는데 푼다라고 해석하는 경우가 한 경우 있다. 이는 함수 호출 할 때 인자로 전달할 경우이다 ex ) a =..
패킹 : 묶기 언패킹 : 풀기 * → 묶는다 라는 의미라고 생각하자 단! 단 하나의 경우에는 풀기의 의미도 있다. 그게 언제냐면 함수를 호출하면서 인자를 전달할 때이다. 튜플로 값을 묶는 행위를 가리켜 '튜플 패킹'이라 하고 반대로 튜플로 묶여 있는 값들을 풀어내느 행위를 '튜플 언패킹'이라 한다. 튜플 패킹 : 하나 이상의 값을 튜플로 묶는 행위 튜플 언패킹 : 튜플레 묶여 있는 값들을 풀어내는 행위 tri_one = (12, 15) #밑변 길이 12와 높이 길이 15를 묶어 놓은 것 # tri_one = 12, 15 이렇게 소괄호 생략할 수도 있다. tri_one (12, 15) 보통은 튜플 생성이라고 이야기를 한다. 하지만 튜플 패킹이라고 이야기를 할 수도 있다. 반대로 다음과 같이 튜플에 저장된 ..
[제너레이터에 대한 이해와 제너레이터 함수] 이번에 소개하는 제너레이터는 iterator 객체의 한 종류이다. 때문에 제너레이터를 전달하면서 next함수를 호출하면 값을 하나씩 얻을 수 있다. 제너레이터를 만드는 두가지 방법이 있다. 제너레이터 함수(function) 제너레이터를 만들기 위한 함수 정의 제너레이터 표현식(expression) 제너레이터를 만들기 위한 식 def gen_num(): # 제너레이터 함수의 정의 print('first number') yield 1 # yield가 하나라도 들어가면 제너레이터가 됩니다. print('second number') yield 2 print('third number') yield 3 gen = gen_num() # 제너레이터 생성 yield가 하나라도..
[map] def pow(n): return n ** 2 # n의 제곱 값을 계산해서 반환 str1 = [1,2,3] 우리는 [1,4,9]와 같이 st1에 있는 요소들을 제곱한 결과를 가지고 있는 리스트를 가지고싶다. 이럴경우에 저 pow함수를 활용하여 번거롭게 만들 수 있는 방법이 있다. st2 = [pow(st1[0]), pow(st1[1]), pow(st1[2])] 리스트의 길이가 길기도하고, 이렇게 일일이 함수를 호출하는 것도 번거롭다. 이 때 MAP함수가 이 번거로움을 대신해준다. def pow(n): return n ** 2 # n의 제곱 값을 계산해서 반환 st1 = [1,2,3] st2 = list(map(pow,st1)) # map은 st1의 값들을 전달하면서 pow를 호출! st2 [1..
[파이썬에서는 함수도 객체] 파이썬은 모든 것을 객체로 처리한다. x = 3.0 type(x) x.is_integer() True 우리가 x=3.0이라는 식을 만들면 3.0이라는 값이 메모리 공간에 저장이 되고, x라는 이름이 거기에 붙는다 라고 설명을 했다. 이걸 조금 더 확장해서 보면 파이썬에서는 실수, 정수 등 저장할 수 있는 Class를 미리 만들어서 가지고 있다. 그래서 우리가 실수(3.0)을 딱 쓰면 실수를 담기 위해 설치해 놓은 클래스가 있는데 () 그 클래스를 기반으로 객체(상자)를하나 만든다 그리고 그 객체 안에 3.0이라는 값을 담는 것이다. 그리고 x는 바로 그 객체에 붙는 것이다. 위의 예에서 변수 x를 대상으로 is_interger메소드를 호출하고 있는데 이는 x에 담긴 실수 3...
[ iter함수 ] [1,2,3,4]라는 리스트가 있고 여기의 값을 하나씩 꺼내려면 for 루프를 사용하면 될 것이다. 하지만 연속으로 1 2 3 4가 다사용이 되는데 1 2 만 사용하고 좀더 있다가 3 4 를 사용하고 싶을 때도 있을 것이다. 그래서 값을 꺼내는 방법이 좀 더 유연하다면 우리가 할 수 있는 일의 범위는 넓어질 것이다. ds = [1,2,3,4] ir = iter(ds) # iterator 객체를 얻는 방법 next(ir) # iterator 객체를 통해 값을 하나 꺼내는 방법 , 첫 번째 값 반환 1 next(ir) # 두 번째 값 반환 2 next(ir) # 세 번째 값 반환 3 next(ir) # 네 번째 값 반환 4 ir = iter(ds) # iterator 객체를 얻는 방법 n..