본문 바로가기
개인 공부/TIL

Today I Learned : 파이썬 (3)

by 희조당 2022. 7. 5.
728x90

🐍 파이썬

 ✔️ enumerate() 

  • '열거하다'라는 뜻을 가진 함수이다!
  • 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력 받고 인덱스와 원소를 튜플 형태로 리턴!
  • 인덱스와 원소를 다른 변수에 할당하고 싶다면 unpacking을 해야 한다!
  • 시작 인덱스를 바꾸고 싶다면 start에 시작하고 싶은 숫자를 넘기면 된다!
### Example
for i in enumerate(['A', 'B', 'C']):
    print(i)
....
(0, 'A')
(1, 'B')
(2, 'C')

 

### Example2
for idx, element in enumerate(['A', 'B', 'C']):
    print(idx, element)
....
0 A
1 B
2 C

 

### Example3
for idx, element in enumerate(['A', 'B', 'C'], start=1):
    print(idx, element)
.... 
1 A
2 B
3 C

 

 ✔️ heapq 

  • 이진 트리 기반의 최소 힙의 자료구조를 제공한다!
  • min heap 이므로 가장 작은 값은 0번 인덱스(루트)에 위치하고 항상 정렬되어 추가되고 삭제된다!
  • 내장 모듈이므로 import 하여 사용한다!
### heap 만들기 ###
# 1. 빈 리스트를 생성하고 heapq 모듈의 함수를 사용한다
# 2. 값이 있는 리스트를 힙으로 변환한다 (O(n)의 시간 소요)

heap = []
arr = []
heapq.heapify(arr)

 

### 원소 추가하기
heapq.heappush(heap, 4)
heapq.heappush(heap, 1)
heapq.heappush(heap, 2)
....
[1, 2, 4]

 

### 원소 삭제하기 (값을 리턴!)
print(heapq.heappop(heap))
print(heap)
....
1
[2, 4]

 

 ✔️ map()

  • 파이썬의 내장 함수!
  • 여러 개의 데이터를 한 번에 다른 형태로 변환해준다.
  • 리턴 값은 map 타입! 리턴 값을 변환해서 저장해야 한다!

 

 

댓글