본문 바로가기

Language/Python

(4)
[Python] heapq heapq : 데이터를 정렬된 상태로 저장하기 위해 사용되는 python의 내장 모듈 : 이진트리 기반의 최소 힙(min heap) 자료구조 제공 : min heap을 사용하면 원소들이 항상 정렬된 상태로 추가, 삭제된다 (따라서 가장 작은 값은 언제나 인덱스 0, 루트에 위치) * 사용법 1) 모듈 import import heapq 2) min heap 생성 : 빈 리스트 생성 후 heapq모듈의 함수 호출 시 이 리스트를 인자로 넘겨준다. heap = [] 3) heap에 원소 추가 : heappush(리스트, 원소)함수 이용 heapq.heappush(heap, 4) heapq.heappush(heap, 1) heapq.heappush(heap, 7) heapq.heappush(heap, 3) p..
[Python] 비트연산자 컴퓨터는 어떤 데이터를 저장하더라도 비트 구조로 변환해 데이터를 저장하게 되어 있고, 저장된 비트는 다시 적절한 형태로 변환되어 사용된다. 이러한 변환 작업없이 비트형태를 그대로연산에 적용하는 것이 비트연산자이다. 비트 : 2진수(binary digit)의 줄임말 비트 연산 : 2진수의 연산 1. 시프트 연산자 1-1) 왼쪽 시프트 연산자 (1) #8/2 = 4 2. AND 연산자 (&) : 각 자리수를 비교해 둘 다 1이면 1, 아니면 0 3. OR 연산자 (|) : 각 자리수를 비교해 둘 중 하나만 1이면 1 4. XOR 연산자 (^) : 각 자리수를 비교해 다르면 1, 같으면 0 5. NOT 연산자 (~) : 1은 0으로, 0은 1으로 변환 : NOT 연산자 수행시 -(입력값+1)의 결과값 리턴 *..
[Python] 문자열 함수 정리 및 응용 1) find : 문자열 위치 찾기 : 처음 나온 값의 인덱스 리턴 : 존재하지 않을 경우 -1 리턴 s = "내가 그린 기린 그림은 잘 그린 기린 그림이고" print(s.find("기린")) #6 print(s.find("기림")) #-1 2) startswith : 해당 문자열로 시작하는지 여부 : 리턴값 True / False s = "내가 그린 기린 그림은 잘 그린 기린 그림이고" print(s.startswith("내가")) #True print(s.startswith("니가")) #False 3) replace : 문자열에서 특정 문자열 대체 s = "내가 그린 기린 그림은 잘 그린 기린 그림이고" print(s.replace("내가", "니가")) #"니가 그린 기린 그림은 잘 그린 기린 ..
[Python] 내장함수 zip zip() : 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 차례로 접근할 수 있는 반복자(iterator)를 반환 : 병렬 처리(여러 그룹의 데이터를 루프 한번으로 처리) 가능, 즉 2개 이상의 인자를 넘겨 처리할 수 있다 : 2개 이상의 리스트에서 값을 동시에 가져와야할 때 반복문에서 사용하기 유용하다 a = [1, 2, 3] b = ["A", "B", "C"] for pair in zip(a,b): print(pair) #(1,"A") (2,"B") (3,"C") : 인자의 길이가 다를 때는 가장 짧은 인자를 기준으로 데이터가 엮이고 나머지는 버려진다 a = [1, 2, 3] b = ["A"] list(zip(a,b)) #(1,"A")