[Python] zip()함수와 * 활용
zip() 함수zip() 함수는 2개 이상의 시퀀스(리스트, 튜플 등)를 짧은 길이를 기준으로 일대일 대응하는 새로운 튜플 시퀀스를 만든다.a = [1,2,3,4,5]b = [2,3,4,5]c = [3,4,5]zip(a,b) # 결과: list(zip(a,b))# 결과: [(1, 2), (2, 3), (3, 4), (4, 5)]list(zip(a,b,c))# 결과: [(1, 2, 3), (2, 3, 4), (3, 4, 5)]파이썬 3+에서는 zip() 함수가 제너레이터를 반환하므로, 결과를 바로 보려면 list()로 묶어야 한다.zip() 함수는 리스트가 아닌 튜플로 시퀀스를 생성하므로, 값을 변경할 수 없는 불변 객체이다. d = list(zip(a,b,c))d[0] # (1,2,3)d[0][0] ..
2024. 11. 11.
11장. 해시 테이블(6) - 예제(상위 K빈도 요소)
상위 k번 이상 등장하는 요소를 추출하라입력: num = [1,1,1,2,2,3] , k=2출력: [1,2] 풀이1. Counter와 우선순위 큐(힙)를 활용한 방법[해결 아이디어]collections.Counter를 사용해 각 요소의 빈도 수를 구하고, 상위 k개를 heapq 모듈의 힙을 이용해 추출한다. 파이썬에서 힙은 최소 힙만 지원하므로, 빈도를 음수로 변환하여 가장 큰 빈도부터 추출할 수 있도록 만든다.[단계별 풀이] 1. 빈도 계산: Counter로 요소별 빈도를 계산import collectionsnum = [1,1,1,2,2,3]freqs = collections.Counter(num) # 결과: # Counter({1: 3, 2: 2, 3: 1}) 2. 힙에 삽입: 각 요소의 빈도 ..
2024. 11. 10.