fastAPI를 시작하기 전에
언어마다 문법이 다른것은 당연하지만, 유독 Python의 문법은 신기하게 생겼다.
새롭게 알게되는 문법이 있을 때마다 주기적으로 추가할 예정이다.
자바스크립트에서는 slice(start, end) 메소드를 가지고 배열을 자를 수 있었다.
파이썬은 배열의 인덱스 범위를 선택하여 자를 수 있다.
arr = [1, 2, 3, 4, 5] 라는 배열이 있다고 가정해보자.
# 기본 형태
arr[start : end : step]
start와 end는 배열의 인덱스 번호를 의미하니 넘어가고 step이라는 세번째 인수가 낯선 개념이다.
배열의 start부터 end사이에 증가/증감하는 단위를 의미한다.
# arr[1:4:2] // [2, 4] 1부터 시작하여 4까지 2씩 증가하는 수를 리스트로 만듦
# arr[::-1]. // [5, 4, 3, 2, 1] 배열의 인덱스를 역순으로 정렬
# arr[2::2] // [3, 5] 2부터 시작하여 마지막 인덱스까지 2씩 증가하는 수를 리스트로 만듦
파이썬에서 직관적으로 리스트를 생성하는 방법이다. Javascript에서는 볼 수 없는 형태라 신기했다.
대괄호 안에 반복문을 사용하여 리스트를 생성한다. (조건문과 반복문은 중첩해서 사용 가능)
[i for i in range(5)] // [0, 1, 2, 3, 4]
[i for i in range(1, 11) if i % 2 == 0] // [2, 4, 6, 8, 10]
리스트 컴프리헨션과 비슷하지만 딕셔너리(객체)에서 사용하는 문법이다.
대괄호가 아닌 중괄호({ }) 안에 반복문과 조건문을 사용한다.
name = ["춘식이", "라이언", "어피치"]
age = [23, 14, 42]
data = {key: value for (key, value) in zip(name, age)}
# 출력결과
{'왕춘삼': 23, '김덕팔': 14, '황갑득': 42}
Python 딕셔너리 타입에서 내가 찾고자하는 key의 value를 get메소드를 통해 가져올 수 있다.
만약 key가 없는 경우 none을 반환하기 때문에 에러가 발생하지 않는다.
dict[key] 와 같은 방법으로 찾는 것은 JavaScript에도 존재하는 방식이라 새롭지 않았으나
get은 유용하게 쓰일 것 같았다.
JavaScript같은 경우, shift와 pop을 이용해서 배열의 첫번째 인덱스와 마지막 인덱스를 제거할 수 있다.
하지만 중간에 있는 특정 위치의 인덱스를 삭제하는 방법은 비교적 까다로운 편이다.
python에도 pop()메소드가 존재한다. 동일하게 배열의 마지막 요소를 삭제하지만,
괄호안에 숫자를 적어주면 그 위치의 인덱스를 제거한다.
arr = [0, 1, 2, 3]
arr.pop(1) # 1번째 원소 리턴 후 삭제