Computer/공부정리

[Python]자주 쓰이지만 아직 안 익은 기능들 모음

이르리의 공부일지 2023. 9. 15. 13:36

참고 책

데이터 과학을 위한 파이썬 프로그래밍 - 최성철 저

'파이썬 스타일 코드' 쪽 내용


모든 내용을 철저하게 적었다기보단

내가 잘 안 써서 익숙하지 않은 부분들이나 '역시 중요하지!'한 것들 위주로만 작성했다.

 

내용 작성이 안 된 부분은 적당히 이해했기 때문에

구글링할 키워드 기억용으로 적어둔 것.

 

 


 

 

1. map, reduce, lambda

( * map 에서 필터링 기능(=if 문 이용)을 쓸 때는 if-else로 써서 아닌 경우도 직접 적어주어야 한다.)

 

예시.

맵 함수로 할 수는 있지만 이 경우는 list comprehension이 더 간단

맵 함수  리스트 컴프리헨션
list(map(lambda x : x ** 2 if x % 2 == 0 else x, ex)) [ x**2 if x % 2 == 0 else x for in ex]

 

 

데이터 엔지니어링에서 쓰이는 그 맵리듀스 말이다.

알아두면 나중에 그 내용 배울 때 이해가 빠르겠지?

 

 

 

2. collections 모듈-orderedDictionary, …

List comprehension, …  : 중첩 반복문, 이차원 리스트, 필터링, …. (용법)

( * 필터링 : if 문 이용-일반, 중첩 반복문으로 쓰는 게 좋은 듯 )

 

 

 

3. asterisk 사용

( * 가변인수 : **kwargs ( a = 1, b = 2, c = 3 )와 *args( 1, 2, 3) )

( * 언패킹 기능도 있음, 별 하나 * 일 땐 리스트, 튜플 같은 자료구조 언패킹, 별 둘 *일 땐 딕셔너리 언패킹)

 

a, b, c = ([1,2], [3,4] [5,6])
print(a, b, c)
# [1,2], [3,4] [5,6]

data = ([1,2], [3,4] [5,6])
print(data)
# [1,2], [3,4] [5,6]

 

data = ([1,2], [3,4] [5,6])
print(data)
# ([1,2], [3,4] [5,6])

print(*data)
# [1,2], [3,4] [5,6]

 

 

 

4. 언패킹 기능

for data in zip(*[[1,2], [3,4] [5,6]]):
print(data)

# (1, 3, 5)
# (2, 4, 6)

 

*[[1,2], [3,4] [5,6]] ← 이 부분이

처음엔 이해 안 됐는데 

 

data_list = [[1,2], [3,4] [5,6]]

라고 생각하면

 

for data in zip([1,2], [3,4] [5,6])

이것과 같기 때문에

저런 답이 나온다.

(이유-언패킹 기능)

 

 

 

4. zip 함수

1개 이상의 리스트값이 같은 인덱스에 있을 대 병렬로 묶는 함수.

묶어서 나오는 원소들은 튜플 형태이다.

벡터 연산이 가능하다. 

enumerate랑도 잘 쓰인다.

(* enumerate : iterable 내 데이터 인덱스 순서대로 출력해주는 함수)

 

 

 

5. 문자열 관련 함수

.join

.split

.strip

알고리즘 문제풀 때도 잘 쓰인다. 쏠쏠.

 

 

 

6. 선형대수 쪽에도 적용 가능

* "선형대수" 하면, 벡터, 행렬을 떠올리자

 

1) 벡터 표현

리스트, 튜플, 딕셔너리

* 리스트-일단 그냥 담아

* 튜플-담은 내용이 변하면 안 돼

* 딕셔너리-데이터의 설명도 담아

 

2) 참 거짓 판별 ⇢ 이유: 동치행렬 찾을 때 씀.

all(), any()

( * all() : 전부 True True, any() : 하나라도 True True)

 

 

수학적인 쓰임이므로 복잡한 예시를 모두 이해할 필요는 없다고 생각했다.

다만 이런 파이썬의 자료형과 함수를 이용해 선형대수 계산에도 쓰인다는 게 흥미로웠다.