블로그 주인이 계속 공부하면서 업데이트 될 예정입니다.
구현 등의 코딩테스트 문제 유형에 기출되었던 기본적인 내장 Python 함수 모음입니다!
자세한 내용은 제 github repo를 참고해주세요 :D 개인 기록용이긴 합니다ㅎㅎ..
ord( ) / chr( )
ord()는 문자열을 아스키코드(숫자)로 반환하는 함수이고, chr()은 아스키코드를 문자열로 반환하는 함수!
chr(65)
>>> A
ord('a')
>>> 97
ex) 위치가 A1 등으로 주어질 때 A의 row 위치를 숫자로 반환해야할 때
isalpha( ) / isalnum( )
isalpha()는 문자열이면 True, 아니면 False를 리턴하고, isalnum()은 숫자면 True, 아니면 False를 리턴함
text1 = 'abcd'
text1.isalpha()
>>> True
text2 = 1234
text2.isalnum()
>>> True
filter (조건함수, 순회 가능 데이터)
filter 는 일부의 데이터만 추려낼 때 사용하는 함수임! 특히 출력을 filter 자료형으로 하기 때문에, 출력 값에 list를 씌워줘야 함 ~_~
string = '0001100'
res = list(filter(lambda x: string[x]=='0', range(len(string))))
>>> [0, 1, 2, 5, 6]
eval( 수식 )
eval은 python code로 실행 가능한 문자열을 인자로 받아 실제로 실행해주는 함수. 예를들면 '5+3' 등의 수식을 실제로 계산해주거나, 'round(4.9)' 를 실제로 반올림 해주는 등의 기능을 한다!
eval('5+4')
>>> 9
eval('round(4.9)')
>>> 5
itertools 라이브러리
리스트에서 순열, 조합을 계산해주는 내장 라이브러리이다. 두개의 리스트에서 모든 조합을 계산할 때는 product method 사용!
items = ['1', '2', '3', '4', '5']
from itertools import permutations # 중복 허용할 때! (순열)
list(permutations(items, 2))
>>> [('1', '2'), ('1', '3'), ('1', '4'), ('1', '5'), ('2', '1'), ('2', '3'), ('2', '4'), ('2', '5'), ('3', '1'), ('3', '2'), ('3', '4'), ('3', '5'), ('4', '1'), ('4', '2'), ('4', '3'), ('4', '5'), ('5', '1'), ('5', '2'), ('5', '3'), ('5', '4')]
from itertools import combinations # 중복 허용하지 않을 때! (조합)
list(combinations(items, 2))
>>> [('1', '2'), ('1', '3'), ('1', '4'), ('1', '5'), ('2', '3'), ('2', '4'), ('2', '5'), ('3', '4'), ('3', '5'), ('4', '5')]
A.sort( ) / sorted( 리스트 )
sorted( 리스트 )는 새로 정렬된 목록을 return 하되, 원래 정렬은 유지된다.
하지만 sort()는 원래 정렬까지 바꾸고, None을 반환한다.
+) 참고로 알파벳 순서로도 정렬할 수 있다 !
sorted( [5, 2, 3, 1, 4] )
>>> [1, 2, 3, 4, 5] # 원본은 그대로 유지됨
a = [5, 2, 3, 1, 4]
a.sort()
>>> None # 근데 a는 바뀐상태
디폴트는 오름차순이고, 내림차순으로 정렬하고 싶다면 sort(reverse=True) 옵션을 사용할 수 있다.
max(A, B) / min(A, B)
A, B 둘 중 크거나 작은 값을 변수에 저장할 때 유용하다.
if 조건문을 쓰지 말고 이 함수로 간단히 해결해보자 !
'Algorithms 💻 > Basic' 카테고리의 다른 글
[알고리즘] 백트래킹(Backtracking)을 알아보자 (0) | 2022.04.05 |
---|---|
[알고리즘] 특정 기준으로 리스트 정렬하기 (python) - key=lambda (0) | 2022.03.27 |
[알고리즘] 큐를 이용해 BFS 구현하기 (python) (0) | 2022.03.21 |
[자료구조] - (2) 스택(Stacks) with Python (0) | 2021.03.11 |
[자료구조] (1) - 연결리스트(Linked List) with Python (0) | 2021.02.27 |