Programming/CodingTest
[이코테] [1] 코딩테스트를 위한 많이 활용하는 파이썬 문법
wave35
2024. 7. 28. 10:22
내장 함수
프로그램을 작성할 때 없어서 안되는 필수적인 기능을 포함합니다.
map 함수
- 반복가능한(iterable) 자료형의 모든 요소에 특정 함수를 적용 후, 결과 반환
- map(적용할 함수, 반복가능한 객체)
- map() 함수의 반환값은 map객체로, 결과를 리스트나 튜플로 변환해야 함
- 예제 : data = list(map(int, input().split()))
정렬 함수
- sorted() 는 내장 함수, 새로운 리스트를 반환
- sort() 리스트의 함수, 원본 리스트 자체를 정렬, 반환값은 None
람다 함수
# 람다 함수 [1]
print((lambda a,b : a+b)(10,5)) # 결과 15
# 람다 함수 [2]
array = [('매트',50),('로리'20),('소드'75)]
def my_key(x):
return x[1]
a = sorted(array, key=my_key)
b = sorted(array, key=lambda x: x[1])
자료형 순서 제공
- 리스트와 튜플은 순서가 있어 인덱싱 가능
- 딕셔너리와 셋(set)은 순서가 없음
itertools
파이썬에서 반복되는 형태의 데이터를 처리하기 위해 유용한 기능들을 제공합니다.
순열 : 순서가 다르면 다른 경우의 수 ( 중복 허용 )
from itertools import permutations
for i in permutations([1,2,3], 2):
print(i, end=" ")
# 결과 : (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)
조합 : 중복 허용하지 않음
from itertools import combinations
for i in combinations([1,2,3], 2):
print(i, end=" ")
# 결과 : (1, 2) (1, 3) (2, 3)
collections
덱(deque), 카운터(Counter), defaultdict가 같은 유용한 자료구조를 제공합니다.
deque
- 빠른 삽입과 삭제가 가능한 양방향 큐
from collections import deque
# 빈 deque 생성
dq = deque()
# 요소 추가
dq.append(10) # 오른쪽 추가
dq.append(20)
dq.appendleft(5) # 왼쪽 추가
print(dq) # deque([5, 10, 20])
# 요소 제거
dq.pop() # 오른쪽 제거
print(dq) # deque([5, 10])
dq.popleft() # 왼쪽 제거
print(dq) # deque([10])
# 회전 (rotate)
dq = deque([1, 2, 3, 4, 5])
dq.rotate(2) # 오른쪽으로 2칸 이동
print(dq) # deque([4, 5, 1, 2, 3])
dq.rotate(-1) # 왼쪽으로 1칸 이동
print(dq) # deque([5, 1, 2, 3, 4])
Counter
- 요소의 갯수를 쉽게 셀 수 있는 딕셔너리
from collections import Counter
# 리스트 요소 개수 세기
nums = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
counter = Counter(nums)
print(counter) # Counter({4: 4, 3: 3, 2: 2, 1: 1})
# 문자열 문자 개수 세기
text = "hello world"
counter = Counter(text)
print(counter) # Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
# 가장 많이 등장한 요소 찾기
print(counter.most_common(2)) # [('l', 3), ('o', 2)]