Python 알고리즘에 필요한 문법 총 정리

이정연·2023년 2월 14일
0

순열

from itertools import combinations as comb, permutations as perm

arr = ['A','B','C']
nPr = perm(arr,2)
print(list(nPr))

[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

조합

from itertools import combinations as comb, permutations as perm

arr = ['A','B','C']
nCr = comb(arr,2)
print(list(nCr))

[('A', 'B'), ('A', 'C'), ('B', 'C')]

zip

zip(lst1,lst2)

lst1과 lst2 각각을 짝지은 zip 객체가 반환됨.
list나 dictionary 등 자료구조를 이용하여 표현 가능

Ex)

print(list(zip(range(0,7), "월화수목금토일")))

[(0, '월'), (1, '화'), (2, '수'), (3, '목'), (4, '금'), (5, '토'), (6, '일')]

Find max value's key in Dictionary

max(dictionary, key=dictionray.get)

딕셔너리에서 밸류의 최대값을 갖는 키를 찾는 방법이다.

말이 어려울 수 있는데, 예를 들어

{'A': 3,'B': 5,'C: 1} 다음의 딕셔너리에서 최대 밸류는 5이고 해당하는 키는 B다.

dictionary 정렬

sorted(dictionary.items(),key=func, bool reverse)

key를 기준으로 정방향/역방향 정렬을 수행

lambda

dictionary = {1:1, 2:2, 3:3}

위의 딕셔너리를 밸류 기준으로 정렬한다고 가정해보자.

def temp(x):
	return x[1]
   
sorted(dictionary.items(),key=temp, reverse=True)

위와 같이 작성할 수도 있지만 temp함수는 재사용성이 없다.

따라서, 임시방편으로 함수를 제작하고 쓴 다음 버려야 하는데 그 때 필요한 게 람다다.

test = {
    'A': 1,
    'B': 2,
    'C': 3,
}
print(sorted(test.items(),key=lambda item:item[1], reverse=True))

위와 같이 작성 가능.

수정중 ...

profile
0x68656C6C6F21

0개의 댓글