본문 바로가기

파이썬/자료구조

[파이썬][자료구조] 데크(deque)에 대한 모든 것 (정의, 함수, 활용) 1. Deque(데크) 정의 Deque는 "double-ended que"의 약자로 스택과 큐를 일반화 한 것이다. List의 경우 고정 길이 연산에 특화되어 있으며, pop(0)과 insert(0, v) 연산에 대해 O(n)의 메모리 비용이 필요한 반면 Deque의 경우 추가(append)와 꺼내기(pop) 연산을 O(1)의 속도로 지원한다. Deque는 maxlen이 지정되지 않거나, None이면 Deque의 길이는 임의로 커질 수 있다. 그렇지 않을 경우 지정된 최대 길이로 제한된다. Deque가 가득 차게 될 경우, 반대편에 있는 원소가 삭제되고 최대 크기를 유지한다. 2. Deque 함수들 함수 실행시간 설명 append(x) O(1) 데크의 오른쪽에 x를 추가합니다. appendleft(x) .. 더보기
[Python] Set() 함수 정의, 예시, 집합 연산, 다양한 사용법 1. Set과 리스트, 튜플과의 비교 List와 tuple은 연속적으로 데이터를 저장하는 표준 파이썬 데이터 타입이다. Set도 마찬가지로 데이터를 저장하는 표준 파이썬 데이터 타입이다. 가장 큰 다른 점은 Set은 원소의 중복을 허용하지 않으며, 정렬되지 않은 값을 저장한다. Set은 불변 데이터만을 포함한다. (integer, float, string, tuple) 불변 데이터를 저장하고, 중복을 제거하고 싶을 때 Set이 유용할 수 있다. Set은 또한 교집합, 배집합 등 다양한 함수를 제공한다. 2. Set 생성방법 결과를 보면 Python, R, SQL, Git 순으로 결과가 출력되어야 하나 순서가 바뀌어서 출력된다. 이게 바로 Set이 정렬되지 않는 것을 말한다. emptySet = set().. 더보기
[파이썬][자료구조] Counter 설명, 예시, 문자열, 파일에서 알파벳 세기 1. Counter Counter는 dict의 서브클래스로 파이썬에서 해싱가능한 개체를 세기 위해 설계됐다. 객체를 key로 개수를 value로 저장하는 딕셔너리이다. Counter를 이용하기 위해서는 연속되거나, 반복 가능한 객체를 인자로 제공해야 한다. 2. Counter를 이용한 예시 from collections import Counter #문자열을 인자로 사용 Counter("mississippi") #리스트를 인자로 사용 Counter(list("mississippi")) Output Counter({'m': 1, 'i': 4, 's': 4, 'p': 2}) 3. set()을 이용해 1로 초기화하기 파이썬의 set은 unique 객체를 저장한다. (중복되지 않는) 아래 예제에서는 중복되는 알파.. 더보기
[파이썬 자료구조] 파이썬에서 배열과 리스트의 차이 1. 파이썬에서 리스트란? 리스트는 파이썬에 내장된 데이터 구조로 items의 collection을 가진다. 리스트의 아이템들은 대괄호로 묶인다. [item1, item2, item3] 리스트는 정렬되어 있다. 인덱스로 각 아이템에 접근할 수 있게 해 준다. 리스트는 변경 가능하다. 리스트가 만들어지고 추가하거나 제거할 수 있다. 리스트는 중복가능하다. 인덱스로 관리되므로 [item1, item1]도 가능하다. 리스트는 여러 가지 데이터 타입이 가능하다. 같은 리스트에 object, string, integer를 합칠 수 있다. 코드 list = [1,2,3,4,5] print(list) print(type(list)) 결과 [1, 2, 3, 4, 5] 2. 파이썬에서 배열이란? 배열도 리스트와 같 파이.. 더보기
[파이썬 자료구조] 간단히 표로 보는 배열과 스택의 차이 1. 배열과 스택의 차이 배열 스택 원소들의 집합은 0으로 시작하는 인덱스로 식별되는 데이터 구조 LIFO 원칙을 따르는 추상 데이터 타입의 원소들의 집합 각 원소들은 같은 데이터 타입을 가진다 원소들은 데이터 타입이 다를 수 있다. 랜덤 액세스는 (Read, Write) 인덱스로 자유롭게 접근 가능 원소들은 LIFO 원칙을 따른다. Top 부분의 원소 접근만 가능 지원되는 함수가 많다. (find ,sort, reverse, push pop etc...) 한정적 함수. push, pop, peek 하나의 데이터 타입이다. 하나의 추상적 자료형이다. 어떤 데이터 타입을 사용할지 알고, 각 원소에 대해 지속적 변경이 필요할경우 유용하다. 어떤 데이터를 처리할 지 모를 때 동적으로 처리가 가능하며, 빠른 접.. 더보기
[파이썬 자료구조] 스택의 개념, 특징 (리스트, 디큐로 구현) 0. 스택의 정의 스택은 FILO(선입후출) 또는 후입선출(LIFO) 방식으로 아이템을 저장하는 선형 데이터 구조이다. 스택에서는 한쪽 끝에 새로운 원소가 추가되고, 그 끝에서만 원소가 삭제된다. 이러한 작업을 push 및 pop이라고 한다. 쉽게 설명하면 박스는 아래에서 위로 쌓고, 아래 박스를 치우기 위해서는 위에서부터 박스를 내린다. 1. 스택에서 지원하는 함수 empty() : 스택이 비어있는지 리턴한다. [시간복잡도 O(1)] size() : 스택의 크기를 리턴한다. [시간복잡도 O(1)] top() / peek() : 스택의 제일 윗부분 원소의 참조를 리턴한다. [시간 복잡도 O(1)] push(A) : 스택의 제일 윗 부분에 A라는 원소를 추가한다. [시간 복잡도 O(1)] pop() : 스.. 더보기
[Python] Series와 Dataframe의 개념, 사용법, 차이점 (in Pandas) 0. Series 개념 Pandas의 일종의 리스트로 정수, 문자열, 실수 등을 포함한다. Pandas Series에서는 0~n의 인덱스를 가지는 리스트를 반환한다. (n은 series의 길이다.) Series은 인덱스와 함께 한개의 리스트만을 갖는다. 1. Dataframe 개념 Series는 Dataframe의 단일 컬럼에 대한 데이터 구조다. Dataframe의 데이터는 메모리에 Series의 데이터들로 저장되어있다. Series은 모든 데이터 유형을 저장할 수 있는 1차원 배열이다. Dataframe은 2차원 배열로 된 데이터구조로 서로 다른 데이터타입을 칼럼으로 가질 수 있다. 2. 간단한 Series 만들기 from pandas import Series import pandas as pd sd.. 더보기
[파이썬 자료구조] defaultdict dictionary 차이와 활용 1. defaultdict 소개 dict 클래스의 서브 클래스 dictionary에서는 (key,value)로 사용된다. 기존 dictionary에서 접근할 때 key의 값이 없거나 없는 key를 조작할려할 때 keyError가 발생한다. 이를 보완한 것이 defaultdict이다. 기존 클래스의 다른 점은 하나의 메소드와 쓸 수있는 인스턴스 변수다. defaultdict에서는 사용자가 없는 key를 접근 or 조작할 때 key 값이 없다면 defaultdict 쪽에서 key를 만들고 defualt 값을 자체적으로 생성해준다. 이 기능이 dictionaries에서 missing key 문제를 해결해준다. 2. defaultdict 활용 from collections import defaultdict de.. 더보기