Enumerate
- for문에서 인덱스도 같이 출력할 때.
- for i, value in enumerate(리스트명)
my_list = ['a','b','c','d']
for i, value in enumerate(my_list):
print("순번 : ", i, " , 값 : ", value)
Generator, yield
- yield를 쓰면 generator로 연결된다.
- generator는 lazy iterator.
- 반복문을 출력할 때에도 주르륵 출력하는 것이 아니라,
- 하나 출력하고 쉬고, 하나 출력하고 쉬고.
- 데이터가 많을 때 메모리 사용이 효율적이어서 자주 사용하는 파이썬의 기능.
- 참고 사이트 : https://www.daleseo.com/python-yield/
파이썬의 yield 키워드와 제너레이터(generator)
Engineering Blog by Dale Seo
www.daleseo.com
Try-Except
- 파이썬의 에러구문을 피하고 싶을 때.
- 내가 에러인지 판단하도록, 에러라면 어떤 행동을 취할지를 코딩하는 함수.
a = 10
b = 0
try:
#실행 코드
print(a/b)
except:
print('에러가 발생했습니다.')
#에러가 발생했을 때 처리하는 코드
b = b+1
print("값 수정 : ", a/b)
Multiprocessing
- 작업속도를 높여주는 함수
- 한 작업을 멀티로 나눠해서 속도를 높임 (속도 = 성능)
- 작업을 두 쪽으로 나눠서 하다보니 5초만에 결과가 두개씩 나와 10초가 걸렸다.
- 출력은 ranmdomly.
import multiprocessing
def count(name):
time.sleep(5)
print("finish:"+name+"\n") # 이까지가 수행할 작업이고.
num_list = ['p1','p2', 'p3', 'p4']
if __name__ == '__main__': # 여기서 시작이란 뜻
pool = multiprocessing.Pool(processes = 2) # 병렬 처리시, 2개의 프로세스를 사용. 이건 컴터 CPU 갯수만큼 적어주는게 좋음(갯수 알아보기 grep -c processor /proc/cpuinfo)
pool.map(count, num_list) # 병렬화 함수. count함수에 num_list의 원소들을 하나씩 넣는다. 여기서는 원소가 4개이므로 4개의 함수에 각각 들어감. count('p1'), count('p2'), count('p3'), count('p4')
pool.close() # 일반적으로 병렬화 부분이 끝나면 나옵니다. 더 이상 pool을 통해서 새로운 작업을 추가하지 않을 때 사용합니다.
pool.join() # 프로세스가 종료될 때까지 대기하도록 지시하는 구문으로써 병렬처리 작업이 끝날 때까지 기다리도록 합니다.
728x90
'Study (Data Science) > Python' 카테고리의 다른 글
참고) iterable, iterator 차이점 (0) | 2022.11.29 |
---|---|
참고) 최댓값, 최솟값 (함수에서 return 잘 활용하는법) (0) | 2022.11.29 |
프로그래머스) 배열의 평균값, 중복된 숫자갯수, 피자나눠먹기 (0) | 2022.11.28 |
프로그래머스) 머쓱이네 양꼬치 (0) | 2022.11.28 |
Unit 26. 세트(set) (0) | 2022.11.28 |
댓글