참고 : https://programmers.co.kr/learn/courses/4008
배열
map(함수, 리스트) : 리스트 요소들에 함수를 적용한 값을 반환
* symbol : 배열 요소들 출력시 요소값만 출력하고 싶을 때 사용.
answer = [1,2,3]
print(answer)
# [1, 2, 3]
print(*answer)
# 1 2 3
zip : 각 iterables 요소를 모으는 iterator 생성 (공식문서)
a = [1,2,3]
b = [4,5,6]
list(zip(a, b))
# [(1, 4), (2, 5), (3, 6)]
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
for n1, n2, n3 in zip(a,b,c):
print(n1,n2,n3)
# 1 4 7
# 2 5 8
# 3 6 9
zip을 이용하면 인덱스로 접근하지 않고 여러 배열들을 한 번에 동일한 인덱스 요소값들에 접근할 수 있다.
len : 배열 size 구하기
len([1,2,3]) # 3
join : 배열들을 문자열로 변환. 구분자 지정가능.
arr = ['100', '000', '000']
','.join(arr) # 100,000,000
reversed : 배열을 역순으로 나열한 오브젝트 반환 (공식문서)
arr = [1,3,2,6,5]
print(list(reversed(arr)))
# [5, 6, 2, 3, 1]
min (문서) : 배열의 최소값 요소 반환
list.index(value) (문서) : 배열에서 value와 동일한 요소의 index 반환
arr = [1,3,2,6,5]
min_ele = min(arr)
min_ind = arr.index(min_ele)
print(min_ele, min_ind)
# 1 0
정렬
(cf. 공식 문서)
sorted(list) : 정렬된 새로운 리스트 반환
list.sort() : sorted 함수를 list배열에 적용
sorted(list, reverse=True) : 역정렬된 리스트 반환
list = [1,2,3]
sorted(list, reverse=True)
list.sort(reverse=True)
# [3, 2, 1]
functolls.cmp_to_key : 해당 함수를 이용하여 key에 custom한 함수를 적용하여 배열을 정렬할수도 있다. 2.x 버전에서는 cmp 파라미터를 내부적으로 제공했는데 3.x 오면서 여러 이유로 삭제된 듯 하다.
from functools import cmp_to_key
list = [5, 4, 3, 2, 1]
# 짝수 먼저, 작은 수 먼저
def custom(a, b):
if a%2 == 0 and b%2 == 1:
return -1
elif a%2 == 1 and b%2 == 0:
return 1
elif a < b:
return -1
return 1
print(sorted(list, key=cmp_to_key(custom)))
문자열
정렬
str.ljust(width[,fillchar]) : 왼쪽 정렬
str.center(width[,fillbyte]) : 가운데 정렬
str.rjust(width[,fillbyte]) : 오른쪽 정렬
width : 전체 폭 넓이. width가 str 문자열의 길이보다 작거나 같은 경우 원본 문자열 str을 반환한다.
fillbyte : 여백(padding)을 채울 문자를 지정할 수 있다. default는 빈 문자(스페이스)이다. ' '
s = 'ABC'
n = 10
s.ljust(n,'a')
# ABCaaaaaaa
s.center(n,'a')
# aaaABCaaaa
s.rjust(n,'a')
# aaaaaaaABC
기본 상수로 알파벳 소문자, 대문자, 숫자들 등을 제공하고 있다. (cf. 공식 문서)
int
생성자에 진법 명시 가능 (cf. 공식 문서)
class int(x, base=10)
num = str(10)
int(num, 2)
# 2
int(num, 5)
# 5
int(num, 10)
# 10
int(num, 20)
# 20
str(int형) : int형을 string 형으로 변환
num = 10
type(num)
# <class 'int'>
type(str(num))
# <class 'str'>
기타
lambda 함수
lambda x, y: x+y
ord(c) 함수
문자의 유니코드 값을 반환
Sorted List (문서)
from sortedcontainers import SortedList
sortedNums = SortedList([1,3,2,6,4])
# [1, 2, 3, 4, 6]
sortedNums.pop(2)
# [1, 2, 4, 6]
sortedNums.add(5)
# [1, 2, 4, 5, 6]
Queue
queue = []
queue.append(0)
queue.append(1)
queue.append(2)
print(queue[0]) # 0
print(queue[-1]) # 2
queue = []
queue.append((0, 'name'))
print(queue[0][0], queue[0][1])
# 0 name
queue.pop(0)
'알고리즘 이론' 카테고리의 다른 글
배열 행 우선 순위, 열 우선 순위 (1) | 2022.03.09 |
---|---|
투포인터 (Two pointer) (0) | 2021.09.12 |
유니온 파인드(Union-Find) (5) | 2021.06.26 |
플로이드 워셜 알고리즘 (Floyd warshall) (0) | 2021.06.13 |
트리의 지름 (0) | 2021.02.21 |
댓글