코딩 테스트 Tools

이승수·2023년 2월 23일
0

순열 / 조합

arr = ['A', 'B', 'C']

from itertools import permutations
# 순열(순서 고려 O)
permutations(arr, 2)	# nPr
=> [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

from itertools import combinations
# 조합(순서 고려 X)
combinations(arr, 2)	# nCr
=> [('A', 'B'), ('A', 'C'), ('B', 'C')]

from itertools import product
# 데카르트 곱
product(arr, repeat=2)
=> [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'b'), ('b', 'c'), ('c', 'a'), ('c', 'b'), ('c', 'c')]

사전

from collections import Counter
# 리스트, 문자열의 문자 개수로 사전 만들기 가능
arr = ['a', 'b', 'f', 'a', 'c', 'a', 'b']

arr_dict = Counter(arr){"a":3,"b":2,"f":1,"c":1}

정렬에 조건 추가

# 1번째 인덱스 기준 정렬
sorted(arr, key = lambda x : x[1])   

# 1번째 인덱스 기준 정렬 후 2번째 인덱스 정렬
sorted(arr, key = lambda x : (x[1], x[2]))

# 1번째 인덱스 기준 내림차순 정렬
sorted(arr, key = lambda x : -x[1])

lambda


#list(map(함수, 리스트))
list(map(lambda x : x**2, [1, 2, 3]))[1, 4, 9]

#리스트 요소끼리 곱하기
list(map(lambda x,y : x*y, [1, 2, 3], [4, 5, 6]))[4, 10, 18]

#list(filter(함수, 리스트))
list(filter(lambda x : x<3, [1, 2, 4, 5]))[1, 2]	# 3보다 작은 수만 출력

리스트 → 붙여서 문자로 출력

# for문 안쓰고 붙여서 출력
LIST = ['a', 'cdf', 'xyzk']

print(''.join(LIST))'acdfxyzk'

리스트 특정 원소 개수

 파이썬 리스트의 특정 요소 개수 구하기 → count()사용

i = [1,1,3,4,5,3,3,7,6,8,9,3,2,5,9]

print(i.count(3)) #리스트i에 요소3의 개수 구할때 

>>> 4 
profile
AI/Data Science

0개의 댓글