(이코테 w/ Python) 문자열과 튜플 자료형
문자열 자료형이란?
파이썬에서 문자열을 이용할 때 문자열 변수를 사용할 수 있다.
문자열 변수를 초기화할 때는 큰따옴표(“) 나 작은따옴표(‘)를 이용한다.
(FYI, 다른 언어에서는 큰따옴표로 문자열을 초기화하고 작은따옴표로 하나의 문자를 초기화한다)
문자열 안에 큰따옴표나 작은따옴표가 포함되어야 하는 경우가 있다.
- 전체 문자열을 큰따옴표로 구성하는 경우: 내부적으로 작은따옴표를 포함할 수 있다.
- 전체 문자열을 작은따옴표로 구성: 내부적으로 큰따옴표 포함 가능
백슬래시(\)를 사용하면 큰따옴표나 작은따옴표를 원하는 만큼 포함시킬 수 있다.
(백슬래시를 이용하는 것은 파이썬 문법 중 하나인 escape 문자를 만들기 위해 사용하는 것이다)
작은따옴표를 이용해서 Hello, world라는 문자를 data라는 변수값으로 대입하였다.
전체 문자열이 큰따옴표로 작성되었기 때문에 내부적으로 작은따옴표를 포함할 수 있으며 (Don’t)
큰따옴표를 문자열 안에서 사용하고자할 때 \를 붙여 escape문자형태로 큰따옴표를 넣을 수 있다.
문자열 연산
문자열 변수에 덧셈을 이용하면 문자열이 더해져 연결된다.
문자열 변수를 양의 정수와 곱하는 경우 문자열이 값만큼 여러 번 더해진다.
문자열도 인덱싱과 슬라이싱을 이용할 수 있다.
다만 문자열은 특정 인덱스의 값을 변경할 수는 없다(immutable)
덧셈을 이용해서 두 단어를 연결시키는 것을 확인할 수 있다.
큰따옴표는 공백을 뜻한다.
String 문자열을 3번 곱하여 연속된 3단어가 이어지도록 하였다.
문자열 슬라이싱을 이용해 인덱스 2부터 인덱스 3까지의 문자가 출력하였다.
튜플 자료형이란?
튜플 자료형은 리스트와 유사하지만 문법적 차이가 있다.
- 튜플은 한 번 선언된 값을 변경할 수 없다 (문자열과 마찬가지)
- 리스트는 대괄호를 이용하지만 튜플은 소괄호를 이용한다
튜플은 리스트에 비해 공간 효율적이다. (기능이 제한적이기 때문에)
그래서 리스트를 사용할 때 보다 메모리를 더 적게 쓴다.
소괄호를 이용해 초기화한다.
특정한 데이터에 접근하는 방법은 리스트와 같다
반면 오류가 나는 예제를 살펴보자.
특정한 인덱스에 값을 바꾸고자 한다면, '튜플은 변경 불가능한 객체라서 원소 할당 연산을 지원하지 않는다' 라는 오류 메세지가 뜬다.
튜플을 사용하면 좋은 경우
1. 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
- 최단 경로 알고리즘에서는 (비용, 노드 번호)의 형태로 튜플 자료형을 자주 사용한다.
- 비용은 실수 값으로 저장하고 노드 번호는 정수 값으로 데이터를 처리할 때
2. 데이터의 나열을 해싱(Hashing)의 키 값으로 사용해야할 때
- 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있다.
- 리스트는 변경이 가능한 객체이므로 키 값으로 사용될 수 없다
3. 리스트보다 메모리를 효율적으로 사용해야 할 때