본문 바로가기

내일 배움 캠프/TIL

TIL) 12주차 2일

알고리즘 문제를 많이 푸는것도 중요하지만, 

 

"memoization, DP, 완탐(bfs,dfs), 그래프, 트리, 최단경로, 그리디, 구현" 위주로 문제를 많이 풀어보는것이 중요함.

 

그리고 공식문서를 볼 때 버전을 맞춰서 읽는 게 중요함! (버전은 3.8 ~ 3.9 사이가 많이 쓰인다고 함)

 

내일도 화이팅!

 


itertools

반복자(iterator) 관련 다양한 함수 제공 - https://docs.python.org/ko/3.8/library/itertools.html

 

itertools — 효율적인 루핑을 위한 이터레이터를 만드는 함수 — Python 3.8.16 문서

itertools — 효율적인 루핑을 위한 이터레이터를 만드는 함수 이 모듈은 APL, Haskell 및 SML의 구성물들에서 영감을 얻은 여러 이터레이터 빌딩 블록을 구현합니다. 각각을 파이썬에 적합한 형태로

docs.python.org

 

몇가지 예시

  • counter() : 지정된 값에서 시작한 시퀀스를 생성하는 함수
  • cycle() : 지정된 시퀀스를 무한히 반복하는 함수
  • repeat() : 지정된 값을 지정된 횟수만큼 반복하는 함수
  • chain() : 두 개 이상의 시퀀스를 연결하는 함수
  • permutations() : 지정된 시퀀스의 모든 가능한 순열을 생성하는 함수
    • 순열 : 서로 다른 N개에서 r개를 뽑아 한 줄로 세우는 경우의 수
  • combinations() : 지정된 시퀀스의 모든 가능한 조합(중복 없음)을 생성하는 함수
  • accumulate() : 시퀀스의 누적 합계를 계산하는 함수
  • islice() : 지정된 요소를 포함하는 시퀀스를 생성하는 함수

 


collections

컨테이너 클래스 - https://docs.python.org/ko/3/library/collections.html

클래스 사용시마다 해당 클래스를 import 해주어야 한다.

 

collections — Container datatypes

Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.,,...

docs.python.org

 

몇가지 예시

  • counter : Counter 클래스는 해시 가능한 객체의 개수를 세는 사용되는 특별한 딕셔너리
  • defaultdict : 기본 값을 지정할 있는 특별한 딕셔너리 클래스
  • deque : deque 클래스는 양방향 (Double-ended Queue)

 


가변인자

정의 : 함수 정의 시에 인자의 개수에 제한이 없이 다양한 인자를 처리 가능

 

*args

  • args는 위치 인자를 임의의 개수로 받을 수 있는 매개변수
  • 함수를 호출할 때 넣은 위치 인자들은 튜플로 묶여서 함수 내부로 전달

 

**kwargs

  • kwargs는 키워드 인자를 임의의 개수로 받을 수 있는  매개변수
  • 함수를 호출할 때 넣은 키워드 인자들은 딕셔너리로 묶여서 함수 내부로 전달

 


람다 함수

쓰는 방법 : lambda 인자 : 표현식

정렬, 필터링과 매핑(https://wikidocs.net/22803) 에서 많이 쓰인다

 

예시

# 1
stu.sort(key=lambda x : x["age"]
print(stu)

# 2
num = [1,2,3,4,5]
squared = list(map(lambda x: x ** 2, num))
print(squared)

 


 

'내일 배움 캠프 > TIL' 카테고리의 다른 글

Import could not be resolved 오류  (0) 2023.06.12
사용자 ip 가져오기 & 조회수 기능 만들기(1)  (0) 2023.06.09
TIL) 12주차 1일  (0) 2023.05.30
TIL) 11주차 4일  (0) 2023.05.26
TIL) 11주차 1일  (0) 2023.05.23