Python

Python 알고리즘 라이브러리 모음

PON_Z 2022. 9. 29. 11:21

- 아스키코드, ascii

ord("a") => 문자열 a를 아스키코드로

chr(65) => 아스키코드 65를 문자열 A로

 

- 힙, heap

import heapq

# 최소 힙 생성, push
heap_list = []
heapq.heappush(heap_list, 4)
heapq.heappush(heap_list, 1)
heapq.heappush(heap_list, 7)

# pop
heapq.heappop(heap_list)

# pop하지 않고 최솟값 얻기
print(heap_list[0])

# 기존 리스트를 힙으로 변환
a_list = [4, 1, 7, 3, 8, 5]
heapq.heapify(a_list)

 

- 정렬, sort

https://docs.python.org/ko/3/howto/sorting.html

숫자 배열을 sort하면 숫자 크기 순으로 정렬되지만,

문자열 배열을 sort하면 사전순으로 정렬 됨

(딕셔너리 sort)

# 정렬기준 1.value값 내림차순, 2.key값의 길이 오름차순 3.key값의 크기 내림차순
dic = sorted(dic.items(), key = lambda x : (x[1], -len(str(x[0])), x[0]), reverse = True)

https://blockdmask.tistory.com/566

 

- 문자열, string

문자열 뒤집기 ex) str[::-1] 하면 str 거꾸로

https://codechacha.com/ko/python-reverse-string/

 

- 리스트, list

list.reverse() 하면 리스트 뒤집어짐

 

- 대소문자 변환

https://pearlluck.tistory.com/598

 

- 진수 변환

https://brownbears.tistory.com/467

 

- 양방향 큐(deque)

https://chaewonkong.github.io/posts/python-deque.html

 

- 순열 조합

https://velog.io/@dramatic/Python-permutation-combination-%EC%88%9C%EC%97%B4%EA%B3%BC-%EC%A1%B0%ED%95%A9

 

- 집합

https://velog.io/@code_angler/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EB%B9%84%EA%B5%90-%EA%B0%99%EC%9D%80%EA%B0%92-%EB%8B%A4%EB%A5%B8%EA%B0%92set%EC%9E%90%EB%A3%8C%ED%98%95%ED%95%A9%EC%A7%91%ED%95%A9%EA%B5%90%EC%A7%91%ED%95%A9%EC%B0%A8%EC%A7%91%ED%95%A9

 

- Counter(중복 가능 집합, 딕셔너리와 유사)

https://www.daleseo.com/python-collections-counter/

무가공, 카운트 갯수 순, key 이름 순

print(count)

print(count.most_common())

print(sorted(count.items()))

 

 

- 문자만 있는지, 숫자만 있는지 확인

https://velog.io/@code_angler/%ED%8C%8C%EC%9D%B4%EC%8D%ACPython-%EB%AC%B8%EC%9E%90%EC%88%AB%EC%9E%90%EC%9D%B8%EC%A7%80-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0isalpha-isdigit-isalnum

 

 

- 딕셔너리

value 중 가장 큰 값 찾기, value가 string일 경우 길이가 가장 긴 값으로 나옴

key 삭제

순서가 있는 딕셔너리 (OrderedDict)

https://www.daleseo.com/python-collections-ordered-dict/

 

 

 

728x90