Loading...
2022. 1. 29. 21:46

파이썬(python)의 lambda, map, reduce

1. lambda 함수 이름 없이 함수처럼 쓰는 익명함수 lambda (parameter) : (return) (condition) 구조 return 값은 보통 한줄정도로 짧게 사용을 권장하지는 않으나 여전히 사람들이 많이 씀 왜 권장하지 않느냐? 테스트 하기 어려움, 이해하기 어려움, 함수의 docstring도 불가능 2. map 시퀀스형 데이터 각 요소에 특정한 함수를 적용시켜주는 함수 여러개의 파라미터를 갖는 함수라면 여러개의 리스트를 받을 수 있음 a = [1,2,3,4,5] f = lambda x:x**2 list(map(f,a)) [1,4,9,16,25] f = lambda x,y : x+y list(map(f,a,a)) [2,4,6,8,10] 이해하기 어려워 사용을 권장하지는 않는다 f = ..

2022. 1. 28. 17:44

함수의 인자(argument)와 *(asterisk)의 용도

1. argument 1-1) keyword argument 함수에 parameter의 이름을 입력하여 값을 넘기는 방식 def f(x,y): return x+y f(1,2) 3 f(x=1,y=2) ###keyword argument 3 1-2) default argument 함수의 paramter의 기본값을 지정해놓은 방식 default가 없는 인자는 디폴트 인자 앞에 와야함 def f(x,y,z=4): return x+y*z f(1,2) 9 z에 값이 들어가지 않고 z=4인 기본값을 넣고 y=2를 넣은 것이라고 인식을 함 f(1,2,5) 11 z에 기본값인 z=4를 넣지 않고 z=5라고 사용자가 직접 지정을 해서 넣어줌 2. asterisk 2-1) variable-length 함수 정의에서 인자에 ..

2022. 1. 27. 21:01

파이썬(python)의 객체(object)와 클래스(class)

1. 객체(object) 속성(attribute)과 행동(action)을 가짐 속성은 변수로 행동은 함수로 표현 파이썬은 객체 지향 언어이다. 모든 데이터는 객체로 표현되거나 객체 사이의 관계로 표현된다 여러 물체들을 객체로 표현하여 실제 세상을 모델링 예) 인공지능 축구 프로그램의 축구선수 객체 : 축구선수는 인공지능 프로그램에서 하나의 객체다 행동 : 공을 찬다, 패스한다 속성 : 이름, 포지션 2. class 객체의 설계도 함수명이 snake case(소문자 사용, 단어 사이에는 _로 연결), 객체명은 보통 camel case(각 단어 첫글자를 대문자)를 따른다 class라는 예약어를 사용 class (이름) (상속 객체): 속성 행동 부모 객체는 보통 상속 객체에 object(생략 가능함) 인스턴..

2022. 1. 26. 20:50

파이썬(python)의 generator란?

iterable object를 특수한 방식으로 사용하는 형태 주소값만 가지고 있다가 사용자가 사용할 때 값을 메모리에 반환 out [114]를 보면 0x84~에 iterator가 있다는 거임. 주소값만 가지고 있음 next를 이용해 사용자가 사용을 하면 다음 위치의 값을 메모리에 반환시킴 큰 데이터를 처리할때 메모리를 효율적으로 사용할 수 있음 그림1과 그림2를 보면 리스트가 메모리 528인데 generator는 메모리가 120으로 매우 작다 실제로 사용하고자 할 때 메모리에 값이 반환되어 보인다는 것이 for loop로 보인다 yield나 (), iter() 등으로 생성가능 위 그림은 ()를 사용해서 generator를 생성한 것

2022. 1. 23. 19:59

파이썬(Python) 프로그래밍 가이드라인

import black을 이용하면 PEP8에 맞는 기준 관례 코드로 수정해줌 1. 기본적인 관례 함수는 프로그램의 공통적인 부분이나 복잡한 부분을 함수화시켜 사용하는 것 가능하면 함수 내부는 짧게 작성 함수 이름은 함수 역할을 명시하게 작성 함수와 함수사이는 두줄 띄어씀 함수는 프로그램 맨 위에 작성 대소문자 I,O,i,o는 자제하는게 좋음, 0이랑 1, l과 헷갈림 불필요하게 많은 공백을 작성하는 것은 자제 연산자 안밖으로는 1칸만 띄어쓰는거( 1 + 2 = 3 vs. 1 + 2 = 3) 들여쓰기는 tab보다는 4칸 띄어쓰기(space) 함수명은 되도록 소문자 for문의 순회문자는 i,j,k...가 관례 iteration은 0부터 시작하는 것이 관례 사람이 이해할 수 있는 변수명을 사용하는 것이 중요함..

반드시 기억해야하는 파이썬 indexing 특징

a[3:-3]? a = [1,2,3,4,5,6] result = [a[i:j] for i in range(1,4) for j in range(-3,-1)] cnt = 0 for element in result: if len(element)