본문 바로가기

Study46

[Python(파이썬)] 세트(set) 세트 (set) 중복된 데이터를 허용하지 않는다. 비순차 자료형, 가변 자료형 인덱스로 접근 불가하다. 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다. 집합 선언 방법 - set() # 빈 집합 선언 방법 >>> test = set() >>> type(test) >>> test >>> test = {'a','c','a','b','c','d','e'} # set은 중복 된 항목 제거됨 >>> test {'b', 'c', 'a', 'd', 'e'} # 항목 존재 유무 확인 - True, False로 반환 >>> 'a' in test True >>> 1 in test False >>> type(test) ※ 빈 집합은 {}로 선언 불가하다. {}로 선언하면 딕셔너리 타입이 생성된다. 반드시 se.. 2021. 7. 15.
[Python(파이썬)] filter(), enumerate() - 찾고자하는 item의 index 모두 찾기 index() 찾고자 하는 item의 index 반환 리스트에서 index()를 사용하면 찾고자하는 item의 index가 가장 작은 한개만 반환한다. >>> test = 'ABAABB' >>> test = list(test) >>> test.index('B') 1 찾고자 하는 item의 인덱스를 모두 찾아 반환하고 싶을 때 사용하는 방법은 2가지이다. filter() # test에서 'B'의 인덱스를 모두 반환 >>> list(filter(lambda x: test[x] == 'B', range(len(test)))) [1, 4, 5] >>> test2 = [1,2,3,4,1,1,6,2,1] # test2에서 값이 2인 인덱스를 모두 반환 >>> list(filter(lambda x: test2[x] .. 2021. 7. 12.
[Python(파이썬)] 문자, 아스키코드 변환 ord(문자) : 문자 -> 아스키코드 >>> ord('A') 65 >>> ord(' ') 32 >>> ord('a') 97 >>> ord('*') 42 chr(숫자) : 아스키코드 -> 문자 >>> chr(65) 'A' >>> chr(97) 'a' >>> chr(32) ' ' >>> chr(42) '*' 2021. 7. 12.
[Python(파이썬)] 힙큐(heapq) 모듈 힙(heap)의 설명은 아래 정리해두었다. [자료구조] 힙(heap) 힙(heap) 최댓값 및 최소값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(complete binary tree) * 이진 트리 : 한 노드의 자식 노드가 최대 2개인 트리 * 완전 이진 트리 : 노드를 삽입할때 young-library.tistory.com heapq 모듈 Python의 heapq 모듈 (= JAVA의 PriorityQueue 클래스) 이진 트리(binary tree)기반의 최소 힙(min heap) 자료구조 # heapq -> 내장 모듈 import heapq heapq.heappush(Heap, item) - 노드 삽입 # 빈 heap 생성 >>> heap = [] # 8 삽입 >>> heapq.hea.. 2021. 7. 8.
[자료구조] 힙(heap) 힙(heap) 최댓값 및 최소값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(complete binary tree) * 이진 트리 : 한 노드의 자식 노드가 최대 2개인 트리 * 완전 이진 트리 : 노드를 삽입할때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 * 이진 탐색 트리 : 왼쪽 자식 노드 값이 가장 작고, 그 다음은 부모, 그 다음은 오른 쪽 자식 노드가 가장 크다. 리스트에 데이터를 넣고, 최댓값과 최소값을 찾을 때 시간 복잡도 : O(n) 힙에 데이터를 넣고, 최댓값과 최소값을 찾을 때 시간 복잡도 : O(logn) 최소힙 (Min Heap) 각 노드의 값이 자식 노드보다 작거나 같다. 자식 노드 값은 오른쪽이 클수도, 왼쪽이 클수도 있다. 위의 힙을 리스트의 형태로 구현하면 [-.. 2021. 7. 8.
[Python(파이썬)] 올림, 내림, 반올림 (소수점, 일의 자리, 십의 자리, ...) 올림 소수점 올림 math 모듈의 ceil()을 사용하여 올림을 계산한다. >>> import math # 나눗셈 계산 후 올림 >>> 7/3 2.3333333333333335 >>> math.ceil(7/3) 3 >>> math.ceil(4.2) 5 >>> math.ceil(-4.2) -4 정수 올림 (1의 자리, 10의 자리, ...) # 1의 자리 올림 >>> ((18 // 10) + 1 )* 10 20 >>> ((1768 // 10) + 1 )* 10 1770 18 // 10 = 1 -> 일의 자리 없애기 1 + 1 = 2 -> 십의 자리 1 올리기 2 * 10 = 20 -> 다시 일의 자리에 0 채우기 1768 // 10 = 176 -> 일의 자리 없애기 176 + 1 = 177 -> 십의 자리.. 2021. 7. 7.
[Python(파이썬)] 리스트, 튜플, 세트, 딕셔너리 리스트 (list) 순차 자료형, 가변 자료형 데이터를 나열한 열거 데이터의 집합(파이썬에서 사용되는 모든 자료형을 저장가능)이다. [] 로 표현, 각각의 항목은 쉼표(,)로 구분한다. 리스트 선언 방법 [] or list() >>> test = [] >>> test2 = list() >>> type(test) >>> type(test2) 튜플 (tuple) '리스트 타입'과 닮았지만 값을 변경할 수 없는 특징을 가진다. extend(), append(), pop(), insert(), remove() 와 같은 값 변경하는 함수 존재 하지 않는다. 순차 자료형,` 불변 자료형 () 로 표현, 각각의 항목은 쉼표(,)로 구분한다. 튜플 선언 방법 () or tuple() # 빈 튜플 선언 >>> test .. 2021. 7. 6.
[Python(파이썬)] itertools - 순열, 조합, product, 두 개 이상 리스트 모든 조합 순열(Permutation) 서로 다른 n개 중에서 r개를 취하여 그들을 일렬로 세울 때, 하나하나를 n개 중에서 r개 취한 순열 (= 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수) # 파이썬에서 순열을 사용하는 법 >>> from itertools import permutations >>> test = [1,2,3,4,5] >>> permutations(test) >>> list(permutations(test, 2)) [(1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 5), (5, 1), (5, 2), (5.. 2021. 7. 5.
[Python(파이썬)] 몫, 나머지 구하기( /, //, %, divmod() ) 나눗셈 나눗셈 기호 -> 슬래쉬 1개 '/' >>> 8 / 2 4.0 # 나누어 떨어지지 않으면 반올림 된다. >>> 14 / 3 4.666666666666667 >>> 15 / 5 3.0 >>> 21 / 8 2.625 나눗셈의 몫 나눗셈의 몫 기호 -> 슬래쉬 2개 '//' >>> 8 // 2 4 >>> 14 // 3 4 >>> 15 // 5 3 >>> 21 // 8 2 나눗셈의 나머지 나눗셈의 나머지 기호 -> 퍼센트 '%' >>> 8 % 2 0 >>> 14 % 3 2 >>> 15 % 5 0 >>> 21 % 8 5 divmod(a, b) 매개변수 숫자 a, b를 입력 받아 몫과 나머지를 튜플(tuple) 형태로 반환하는 함수 >>> divmod(8, 2) (4, 0) >>> divmod(14, 3) .. 2021. 7. 2.
[Python(파이썬)] 문자열 인덱스로 접근하기 문자열은 문자들이 일렬로 모여있는 상태 문자열[인덱스] 문자열은 리스트처럼 인덱스로 접근하여 값을 가져올 수 있다. >>> test = 'python' # test의 인덱스 0(첫번째)번 가져오기 >>> test[0] 'p' # test의 마지막 인덱스 가져오기 >>> test[-1] 'n' # test의 인덱스 0~2까지 가져오기 >>> test[:3] 'pyt' # 인덱스의 범위가 벗어나면 에러발생 >>> test[7] Traceback (most recent call last): File "", line 1, in test[7] IndexError: string index out of range 문자열의 길이 >>> len(test) 6 문자열은 리스트와 같이 =로 문자를 할당하거나 변경할 수 없다.. 2021. 7. 2.