👉🏻문자열 자료형
- 문자열 변수를 초기화 할 때 큰따옴표(")나 작은 따옴표(')를 이용한다
- 문자열 안에 큰 따옴표나 작은 따옴표가 포함되어야 하는 경우
- 전체 문자열을 큰 따옴표로 구성하는 경우: 내부적으로 작은 따옴표를 포함
- 전체 문자열을 작은 따옴표로 구성하는 경우: 내부적으로 큰 따옴표를 포함
- 백슬래시(\)를 사용하면 큰 따옴표나 작은 따옴표를 원하는 만큼 포함시킬 수 있다.
- 다른 프로그래밍 언어에서는 큰 따옴표를 이용해서 문자열을 초기화하고, 작은 따옴표를 이용해서 하나의 문자를 초기화
- 파이썬에서는 둘 다 가능
🧩 문자열 연산
- 문자열 변수에 덧셈(+)을 이용하면 문자열이 더해져서 연결(Concatenate) 된다
- 문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열이 그 값만큼 여러번 더해진다
- 문자열에 대해서도 마찬가지로 인덱싱과 슬라이싱을 이용할 수 있다
- 다만 문자열은 특정 인덱스의 값을 변경할 수는 없다(Immutable)
- 덧셈일 경우 뒷쪽으로 죽 이어진다
- str객체는 원소 할당을 지원하지 않는다
👉🏻 튜플 자료형
- 튜플 자료형은 리스트와 유사하지만 다음과 같은 문법적 차이가 있다.
- 튜플은 한 번 선언된 값을 변경할 수 없다
- 리스트는 대괄호([])를 이용하지만, 튜플은 소괄호(())를 이용한다
- 튜플은 리스트에 비해 상대적으로 공간 효율적이다
- 리스트는 특정한 인덱스의 값 변경 가능
- 기능 제한적이지만 적은 양의 메모리를 사용한다
- 튜플은 원소 할당 연산을 지원하지 않는다
🧩 튜플을 사용하면 좋은 경우
- 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
- 최단 경로 알고리즘에서는 (비용, 노드 번호)의 형태로 튜플 자료형을 자주 사용한다
- 비용= 실수값, 노드 번호 = 정수 를 하나로 묶어..
- 학생 정보를 (학번, 성적) 묶어서
- 데이터의 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때
- 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있다
- 집합 자료형 등에서 해싱의 키 값을 데이터의 묶음/나열을 사용해야할 때
- 리스트는 변경 가능해서 키 값으로 사용도리 수 없다
- 리스트보다 메모리를 효율적으로 사용해야할 때
👉🏻 사전 자료형
- 사전 자료형은 키(key)와 값(value)의 쌍을 데이터로 가지는 자료형
- 앞서 다루었던 리스트나 튜플이 값을 순차적으로 저장하는 것과는 대비된다
- 리스트의 경우 값이 앞에서부터 차례대로 저장되어 있기 때문에 인덱싱을 사용할 수 있었다
- 사전 자료형은 키와 값의 쌍을 데이터로 가지며, 원하는 '변경 불가능(Immutable) 자료형'을 키로 사용할 수 있다
- 키 값을 이용해서 각 원소에 접근할 수 있다
- 파이썬의 사전 자료형은 해시 테이블(Hash Table)을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있다.
- 키 값으로 접근했을 때 그것과 매칭되는 어떤 값을 얻고자 하는 자료구조에서 효과적
- 사전을 정의한 뒤 사전명['키'] = 값 형태로
- 특정 키가 있는지 검사하기 위해서 상수 시간이 소요됨
- 문자열 등의 키를 이용해 어떤 데이터를 저장하고 관리하려면 리스트보다 효율적으로 데이터 조회를 수행할 수 있다
🧩 사전 자료형 관련 메서드
- 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원한다
- 키 데이터만 뽑아 리스트로 이용: keys() 함수 이용
- 값 데이터만 뽑아 리스트로 이용: values() 함수 이용
- keys() 함수는 dictionary key라는 하나의 객체이기 때문에 이것을 진짜 list형태로 받으려면 list() 를 통해 형 변환을 해주어야 한다
👉🏻 집합 자료형
- 집합은 다음과 같은 특징이 있다
- 중복을 허용하지 않는다
- 순서가 없다
- 데이터 존재 여부만을 체크할 때 효과적으로 사용 가능
- 집합은 리스트 혹은 문자열을 이용해서 초기화할 수 있다
- 이때 set() 함수를 이용한다
- 혹은 중괄호({}) 안에 각 원소를 콤마(,)를 기준으로 구분하여 삽입함으로써 초기화할 수 있다
- 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있다
- 리스트를 set() 함수로 감싸준다
- 중복을 제거해서 한번씩만 존재하는 것 처럼 나타난다
- {}안에 ,로 구분하여 초기화한다
🧩 집합 자료형의 연산
- 기본적인 집합 연산으로는 합집합, 교집합, 차집합 연산 등이 있다
- 합집합: 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합(A∪B)
- 교집합: 집합 A에도 속하고 B에도 속하는 원소로 이루어진 집합(A∩B)
- 차집합: 집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합(A - B)
- 합집합: or (|)
- 교집합: and(&)
- 차집합: (-)
🧩 집합 자료형 관련 함수
- 새로운 원소를 추가할 때는 add()
- 새로운 원소 여러개 일 때는 update()
- 특정한 값을 갖는 원소 삭제시에는 remove()
- 특정한 원소가 존재하는지 조회, 특정 원소 삽입 및 삭제 시 상수 시간이 소요됨
🧩 사전 자료형과 집합 자료형의 특징
- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다
- 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다
- 사전의 키(key)혹은 집합의 원소(Element)를 이용해 O(1)의 시간 복잡도로 조회한다
- 키나 원소의 값으로는 변경 불가능한 문자열이나 튜플 객체가 사용되어야 한다.
출처: https://youtu.be/p6df7qv6jFQ?si=9eHtqDhWAXT4XjRh
https://youtu.be/Mkk8WOCAlqQ?si=aYHzZZkMwqbzxFnz
'Python > 이것이코딩테스트다with파이썬' 카테고리의 다른 글
8~9강 :: 조건문, 반복문 (0) | 2023.11.02 |
---|---|
7강 :: 기본 입출력 (0) | 2023.11.02 |
4강 파이썬 문법: 리스트 자료형 (0) | 2023.09.27 |
3강 :: 파이썬 문법 수 자료형 (0) | 2023.09.11 |
2강 :: 알고리즘 성능 평가 (0) | 2023.09.07 |