List Comprehension:
표현식과 제어문을 통해서 특정 값을 지닌 리스트를 간결하게 생성하는 방법이다.
<expression> for <variable> in <iterable>
<expression> for <variable> in <iterable> if <condition>
#1~3의 세제곱의 결과가 담긴 리스트를 만드시오.
l = []
for i in range(1, 4):
l.append(i**3)
#List Comprehension으로 하면
#<expression> for <variable> in <iterable> if <condition>
number ** 3 for number in range(1,4)
map도 list comprehension와 유사하다.
# 3으로 곱하여 출력해보자.
numbers = [1,2,5,10,3,9,12]
# for 문 활용
result = []
for number in numbers:
number *= 3
result.append(number)
print(result) #[3,6,15,30,9,27,36]
# map 함수 활용
# 1. 함수 정의를 먼저 해야한다.
def multiply_3(number):
return number * 3
# 2. 함수를 첫 번째 인자로 전달하여 사용한다.
print(list(map(multiply_3, numbers)))
# 임시적인 함수를 만들고 싶을 때는 lambda를 사용한다.
# n = 매개변수, n*3 = 표현식, numbers = input
print(list(map(lambda n: n*3, numbers)))
🌟 def
는 함수를 "정의"했다는 것이고
🌟 function()
을 한 것은 함수를 "호출"했다는 것이다. ex: sum([1,2,3])은 함수를 호출한 것
lambda는 위의 과정을 거치지 않고 정의없이 함수를 만든 것이다. 따라서 "익명함수"라고 불린다. 함수를 딱 한줄로 간단하게 표현해준다는 것이 가장 큰 장점이다.
filter(function, iterable)
: "반복 가능한 요소"에 function을 적용하여 결과가 True인 것들만 반환하게 해주는 함수이다.
map의 경우, map(function, iterable)
인데 "모든 반복 가능한 요소"에 function을 적용하여 결과를 반환하는 역할을 한다.
🌟 즉 차이는 반복 가능한 요소에 함수를 적용하여 나온 결과 중 True 요소 반환을 하는냐, 아니면 모든 결과를 반환을 하느냐이다.
numbers = [1,2,5,10,3,9,12]
#기본 반복/조건 코드
result = []
for number in numbers:
if number % 3 == 0:
result.append(number)
print(result)
#위의 코드를 filter와 lambda를 활용하여 한 줄로 줄일 수 있다.
print(list(filter(lambda n: n%3==0, numbers)))
어노테이션:
어노테이션은 동적 타입 언어인 파이썬에서 참고사항일 뿐이다. 주석과 같은 역할을 한다. 타입 변환 기능을 지니지는 않는다.
변수 어노테이션(annotation)
a: int = 3
print(a)
함수 어노테이션(annotation)
def add(x: int, y: int) -> int:
return x + y
-
모듈: 다양한 기능을 하나의 파일로
-
패키지: 다양한 파일을 하나의 폴더로
-
라이브러리: 다양한 패키지를 하나의 묶음으로
pip(파이썬 패키지 관리자): Package manager for Python packages
venv(가상환경): Virtual Environment
서로 다른 버전의 프로젝트를 진행하려고 할 때 사용한다.
프로젝트마다 다른 버전의 패키지를 활용하고 관리하기 위해서 사용한다.
새로운 독립적인 파이썬 환경을 폴더로 생성하여 그 환경에서 프로젝트를 시작할 수 있게 해준다.
$ pip install package # 패키지 설치
$ pip uninstall package # 패키지 삭제
$ pip list # 패키지 목록 출력
$ pip show package # 패키지 정보 확인
$ pip freeze # 설치된 패키지의 목록을 만드나, pip install 에서 활용되는 형식으로 출력된다.
'''
이게 무슨 말이냐면...
협업 프로젝트를 진행하는 A와 B가 있을 때, A가 B에게 프로젝트 진행을 위해 필요한 패키지 목록을 넘겨준다고 하자. 이 때 pip list를 하여 일일히 넘거주기보다는 pip freeze를 한 후, requirements.txt로 파일을 B에게 넘겨준다.
B는 넘겨받은 requirements 파일로 pip install -r requirements.txt를 하여 리스트의 패키지를 모두 한꺼번에 다운받는다.
'''
$ python -m venv venv #가상환경 생성
$ source venv/Scripts/activate # (venv) 로 가상환경이 실행됨을 확인 가능하다. #가상환경 실행
$ which python # 현재 실행되는 파이썬 경로를 출력.
import requests
URL = 'api URL'
response = requests.get(URL).json()
pprint(response)
https://www.w3schools.com/python/python_pip.asp (PIP)
https://wikidocs.net/64 (Lambda)