리스트 컴프리헨션(2)
리스트 컴프리헨션을 사용하면 map과 filter 함수를 간단하게 대신할 수 있다. st1 = [1, 2, 3] st2 = list(map(lambda n: n**2, st1)) # 제곱의 결과를 리스트로 묶음 st2 => [1, 4, 9] 위 코드는 map을 사용한 코드이다. 리스트 컴프리헨션을 사용하면 다음과 같이 간단하게 작성할 수 있다. st1 = [1, 2, 3] st2 = [n**2 for n in st1] # 제곱의 결과를 리스트로 묶음 st2 => [1, 4, 9] 그리고 다음은 filter를 사용한 예이다. st = [1, 2, 3, 4, 5] ost = list(filter(lambda n:n % 2, st)) # 홀수만 남겨셔 리스트로 묶음 ost => [1, 3, 5] 이 역시 리스..
map과 filter
map & filter map def pow(n): return n ** 2 # n의 제곱 값을 계산해서 반환 st1 = [1, 2, 3] 위에서 정의한 pow 함수와 st1이 참조하는 리스트를 이용해서 다음과 같은 리스트를 만들어보고자 한다. st2 == [1, 4, 9] 위는 st1의 값들을 pow 함수에 넣어서 반환된 값들로 이뤄진 리스트이다. 어떻게 해야 이 리스트를 만들 수 있을까? 먼저 다음과 같은 방법이 있다. st1 = [1, 2, 3] st2 = [pow(st1[0]), pow(st1[1]), pow(st1[2])] # 값을 일일이 넣어서 pow 함수 호출 st2 => [1, 4, 9] 위는 정말 불편한 코드이다. 리스트의 길이가 긴 경우 문제가 될 수 있고, 또 이렇게 일일이 함수를 호..
리스트 컴프리핸션
먼저 리스트를 생성하는 기본 방법들이 있다 r1 = [1, 2, 3] r2 = [] r3 = [1, 2, [3, 4]] [1, 2, 3, 4, 5]의 모든 값을 두 배씩 증가시킨 값을 지니는 리스트를 만들어라. r1 = [1, 2, 3, 4, 5] r2 = [] for i in r1: r2.append(i*2) # 두 배씩 증가시켜서 리스트 r2에 저장 r2 -> [2, 4, 6, 8, 10] 위의 코드를 for루프를 사용하지 않는 형태로 대신할 수 있다. 리스트 컴프리핸션 r1 = [1, 2, 3, 4, 5] r2 = [x * 2 for x in r1] # 리스트 컴프라핸션의 기본 구조 r2 -> [2, 4, 6, 8, 10] 위의 코드를 해석해보면 r1의 값들을 하나씩 x에 넣고, x * 2의 결과를..