heapq

 

heapq 모듈은 힙큐 알고리즘 구현을 해줍니다.


heapq 모듈은 이진 트리의 최소힙 자료구조를 제공합니다.

 

heapq에서는 모든 k에 대해 heap[k] <= heap[2*k+1]과 heap[k] <= heap[2*k+2]을 만족하는 배열을 사용합니다.

 

따라서 인덱스 0인 이진 트리의 루트에 가장 작은 요소가 있습니다.

 

heapq.heappush(heap 이름, 추가할 원소)
heapq.heappop(heap 이름)
heapq.heappushpop(heap 이름, 추가할 원소)
heapq.heapify(리스트 이름)

heapq의 기본 함수입니다.

 

heappush는 힙에 원소를 추가합니다.
heappop은 가장 작은 원소를 삭제합니다.
heappushpop은 힙에 원소를 추가하고 가장 작은 원소를 삭제합니다. 이는 heappush()한 다음 heappop()을 각각 사용하는 것보다 더 유용합니다.

heapify는 리스트를 인자로 넘기면 리스트 원소들을 힙 구조에 맞게 바꿔줍니다. 새로운 리스트를 생성한 후 heappush() 함수로 원소를 하나씩 추가하는 것을 한번에 해주는 기능입니다.

 

import heapq

a=[]

heapq.heappush(a, 1)
heapq.heappush(a, 5)
heapq.heappush(a, 3)
heapq.heappush(a, 2)
heapq.heappush(a, 4)

# 출력>>[1, 2, 3, 5, 4]
print(a)

# 출력>>1
print(heapq.heappop(a))

b=[8,6,4,3,1,5]

heapq.heapify(b)

# 출력>>[1, 3, 4, 8, 6, 5]
print(b)

'Python > 파이썬 기초' 카테고리의 다른 글

파이썬_기초 36_isalpha(), isdigit(), isalnum()  (0) 2020.07.06
파이썬_기초 34_rjust와 ljust, zfill  (0) 2020.06.04
파이썬_기초 33_zip  (0) 2020.06.04
파이썬_기초 32_enumerate  (0) 2020.05.31
파이썬_기초 31_Counter  (0) 2020.05.30

 rjust와 ljust

 

문자열을 오른쪽으로 정렬할 때는 rjust 함수를 왼쪽으로 정렬할 때는 ljust 함수를 사용합니다.

 

rjust(문자열의 크기, 생성 공간을 채울 문자)
ljust(문자열의 크기, 생성 공간을 채울 문자)

rjust와 ljust의 기본 구조입니다.

 

생성 공간을 채울 문자의 기본값은 공백입니다.

 

a='12345'

# 출력>>12345     
print(a.ljust(10))

# 출력>>     12345
print(a.rjust(10))

# 출력>>12345@@@@@
print(a.ljust(10,'@'))

# 출력>>@@@@@12345
print(a.rjust(10,'@'))

 

 

 zfill

 

zfill은 문자열 앞을 0으로 채워주는 함수입니다.

 

zfill(문자열의 크기)

zfill의 기본 구조입니다.

 

a='12345'

# 출력>>0000012345
print(a.zfill(10))

'Python > 파이썬 기초' 카테고리의 다른 글

파이썬_기초 36_isalpha(), isdigit(), isalnum()  (0) 2020.07.06
파이썬_기초 35_heapq  (0) 2020.06.06
파이썬_기초 33_zip  (0) 2020.06.04
파이썬_기초 32_enumerate  (0) 2020.05.31
파이썬_기초 31_Counter  (0) 2020.05.30

 zip

 

zip()은 동일한 개수로 이루어진 자료형을 묶어주는 함수입니다.

 

a=[1, 2, 3]
b=[4, 5, 6]

# 출력>>[(1, 4), (2, 5), (3, 6)]
print(list(zip(a,b)))

c=[1, 2, 3]
d=['d1', 'd2', 'd3']
dic={}

for c, d in zip(c,d):
    dic[c] = d

# 출력>>{1: 'd1', 2: 'd2', 3: 'd3'}
print(dic)

'Python > 파이썬 기초' 카테고리의 다른 글

파이썬_기초 35_heapq  (0) 2020.06.06
파이썬_기초 34_rjust와 ljust, zfill  (0) 2020.06.04
파이썬_기초 32_enumerate  (0) 2020.05.31
파이썬_기초 31_Counter  (0) 2020.05.30
파이썬_기초 30_딕셔너리(Dictionary)  (0) 2020.05.30

slice()

 

slice()는 리스트나 문자열을 잘라주는 함수입니다.

 

리스트[시작인덱스:끝인덱스]

slice()의 기본구조입니다.

 

시작인덱스부터 가져와서 끝인덱스 -1까지 가져옵니다.

 

a=[1,2,3,4,5]

# 결과>>[2, 3]
print(a[1:3])

# 결과>>[2, 3, 4, 5]
print(a[1:])

# 결과>>[1, 2, 3]
print(a[:3])

# 결과>>[1, 2, 3, 4, 5]
print(a[:])

a[1:3] : 인덱스 1부터 인덱스 2까지 반환합니다.
a[1:] : 인덱스 1부터 끝까지 반환합니다.
a[:3] : 처음부터 인덱스 2까지 반환합니다.
a[:] : 처음부터 끝까지 모두 반환합니다.

 

리스트[시작인덱스:끝인덱스:인덱스증가폭]

slice()의 기본구조2입니다.

 

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

# 결과>>[2, 4, 6]
print(a[1:7:2])

# 결과>>[2, 4, 6, 8]
print(a[1::2])

# 결과>>[1, 3, 5, 7]
print(a[:7:2])

# 결과>>[1, 3, 5, 7]
print(a[::2])

# 결과>>[1, 2, 3, 4, 5, 6, 7, 8]
print(a[::])

# 결과>>[8, 7, 6, 5, 4, 3, 2, 1]
print(a[::-1])

a[1:7:2] : 인덱스 1부터 인덱스를 2씩 증가하면서 인덱스 6까지 반환합니다.
a[1::2] : 인덱스 1부터 인덱스를 2씩 증가하면서 끝까지 반환합니다.
a[:7:2] : 처음부터 인덱스를 2씩 증가하면서 인덱스 6까지 반환합니다.
a[::2] : 처음부터 인덱스를 2씩 증가하면서 끝까지 반환합니다.
a[::] : 처음부터 끝까지 모두 반환합니다.

a[::-1] : 처음부터 -1칸 간격으로 끝까지 반환합니다.(= 역순으로 반환합니다)

+ Recent posts