enumerate, zip
python에서 배열을 순회할때 인덱스와 값을 같이 가져올 수 있습니다. javascript에서 forEach, map 과 같이 순회하는 함수에서 또한 value, index를 같이 가져올수 있습니다. enumerate 내장함수를 이용하면 됩니다. l = [1,2,3] for index, val in enumerate(l) : print(index, val) # 0 1 # 1 2 # 2 3 두개의 배열을 같이 순회하면서 같은 인덱스의 값을 비교하고 싶을때도 있을수 있습니다. 그때는 zip 내장함수를 이용하면 됩니다. a = [1,1,1] b = [2,2,2] for i,j in zip(a, b) : print(i,j) # 1 2 # 1 2 # 1 2
2022. 3. 17.
이진탐색, bisect_left, bisect_right
* 잘못된 정보가 있으면 말씀해주세요. 빠른 반영 하겠습니다! 이진탐색을 사용하면 O(logn)의 시간복잡도를 가지게 되는데요 [0, 10, 20, 30, 40, 41, 42, 42, 43, 44, 45, 50, 60, 61] 의 배열이 있다고 가정하겠습니다 50을 찾겠습니다. 1. 중간값 42와 50을 비교 -> 42보다 50이 큼 -> [42, 43, 44, 45, 50, 60, 61]에서 찾음 2. [42, 43, 44, 45, 50, 60]의 중간값 44 와 50을 비교 -> 44보다 50이 큼 -> [45, 50, 60, 61]에서 찾음 3. [45, 50, 60, 61] 의 중간값 60과 50을 비교 -> 60이 50보다 큼 -> [45, 50]에서 찾음 4. [45, 50]의 중간값 45와 ..
2021. 12. 3.
list Filter
python에서 Filter javascript에서 filter를 즐겨 쓰다보니 python에서도 filter를 계속 찾게된다. 아직 익숙치 않아 매번 블로그 뒤지고 있어서 이 참에 한번 깔끔하게 정리해보자 실제 활용 예시 먼저!!! import re s = "one2three4five6" print(list(re.split('(\d)', s))) # ['one', '2', 'three', '4', 'five', '6', ''] print(list(filter(lambda x: x != '', list(re.split('(\d)', s))))) # ['one', '2', 'three', '4', 'five', '6'] 최근 정규 표현식 라이브러리를 사용하려 하고 있다. re.split을 하면 split ..
2021. 11. 20.