문자열 자료형
먼저 문자열이란 무엇일까? 바로 문자나 단어등으로 구성된 문자들의 집합이다.
문자열 변수를 초기화할 때는 큰따옴표(”)나 작은 따옴표(’)를 이용한다.
문자열 안에 큰따옴표나 작은따옴표가 포함되어야 하는 경우가 있다.
전체 문자열을 큰따옴표로 구성하는 경우, 내부적으로 작은따옴표를 포함할 수 있다.
전체 문자열을 작은따옴표로 구성하는 경우, 내부적으로 큰따옴표를 포함할 수 있다.
혹은 백슬래시(\)를 사용하면, 큰따옴표나 작은 따옴표를 원하는 만큼 포함시킬 수 있다.
data = "Hello World"
print(data)
data = "Don't you know \\"Python\\"?"
print(data)
문자열 연산
1. 문자열 변수에 덧셈(+)을 이용하면 문자열이 더해져서 연결(Concatenate)된다.
2. 문자열 변수를 특정한 양의 정수를 곱하는 경우, 문자열이 그 값만큼 여러 번 더해진다.
3.문자열에 대해서도 마찬가지로 인덱싱과 슬라이싱을 이용할 수 있다.
다만 문자열은 특정 인덱스의 값을 변경할 수는 없다.(Immutable)
a = "Hello"
b = "World"
print(a+" "+b)
a = "String"
print(a * 3)
a = "ABCDEF"
pirnt(a[2 : 4]}) # CD
문자열 관련 함수들
파이썬은 자바와 다르게 문자열 자료형 자체적으로 다양한 함수를 가지고 있다. 이를 문자열 내장 함수라고 한다.
다양한 문자열의 내장 함수에 대해서 알아보자.
문자 개수 세기 (count)
a = "Hello"
a.count('l') # 2
문자열 중 문자 l의 개수를 리턴한다. 위에 코드에서는 2를 리턴한다.
위치 알려주기 1 (find)
a = "Hello"
a.find('e') # 1
a.find('l') # 2
문자열 중 '문자 '가 처음 나온 위치를 반환한다. 해당 문자가 문자열에 없을 경우에는 -1를 반환한다.
위치 알려주기 2 (index)
a = "Hello"
a.index('H') # 0
a.index('p') # error 발생
위에 find() 함수랑 동일하게 처음 나온 위치를 반환한다.
하지만 index 함수는 찾는 문자나 문자열이 없는 경우 오류를 발생시킨다.
문자열 삽입 (join)
s = ['a', 'b', 'c', 'd']
str = ''.join(s) # abcd
str = '-'.join(str) # a-b-c-d
문자열, 리스트, 튜플 각각의 문자 사이에 특정문자를 삽입하거나 합칠수도 있다.
코딩 테스트에서 자주 사용된다.
소문자를 대문자로, 대문자를 소문자로 (upper, lower)
# 소문자 -> 대문자
a = "Hello"
a.upper() # HELLO
# 대문자 -> 소문자
a.lower() # hello
말 그대로 대문자는 소문자로, 소문자는 대문자로 바꿔준다.
왼쪽, 오른쪽, 양쪽 공백 지우기 (lstrip, rstrip, strip)
# 왼쪽 공백 지우기
a = " hello "
a.lstrip() # 'hello '
# 오른쪽 공백 지우기
a = " hello "
a.rstrip() # ' hello'
# 양쪽 공백 지우기
a = " hello "
a.strip() # 'hello'
코딩테스트에서 문자열 값을 입력 받을 때 공백까지 같이 사용 받을 때 사용된다.
문자열 바꾸기 (replace)
a = "Hello"
a = a.replace("ello", "i") # 'Hi'
replace(바뀌게 될 문자열, 바꿀 문자열)처럼 사용해서 문자열 안의 특정한 값을 다른 값으로 치환해 준다.
문자열 나누기 (split)
a, b = input().split() # 공백을 기준으로 자르기
split 함수는 괄호에 아무 값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터)를 기준으로 문자열을 나누어 준다.
이렇게 필수적인 문자열 함수에 대해서 알아보았다.
튜플 자료형
튜플 자료형은 리스트와 유사하지만 다음과 같은 문법적 차이가 존재한다.
1. 튜플은 한 번 선언된 값을 변경할 수 없다.
튜플 요솟값을 삭제하거나 변경하려고 하면 오류가 발생한다.
2.리스트는 대괄호([])를 이용하지만, 튜플은 소괄호(())를 이용한다.
3. 튜플은 리스트에 비해 상대적으로 공간 효율적이다.
튜플은 개체 참조의 고정 크기 배열을 사용하여 구현되는 반변 리스트은 필요에 따라 크기를 늘리거나 줄일 수 있는 동적 배열을 사용. 하여 구현하기 때문에 상대적으로 공간 효율적이다.
a = (1, 2, 3, 4, 5, 6, 7, 8, 9)
# 네 번째 원소만 출력
print(a[3])
# 두 번째 원소부터 네 번째 원소까지
print(a[1 : 4])
# 오류가 발생하는 예제
a[2] = 8
튜플을 사용하면 좋은 경우
그렇다면 리스트를 사용하면 되지 왜 튜플을 사용할까 ?
튜플의 올바른 사용 예시에 대해서 알아보자.
서로 다른 성질의 데이터를 묶어서 관리해야 할 때
최단 경로 알고리즘에서는 (비용, 노드 번호)의 형태로 튜플 자료형을 자주 사용한다.
데이터의 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때
튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있다.
리스트보다 메모리를 효율적으로 사용해야 할 때
'Programming > Python' 카테고리의 다른 글
| [Python] 사전, 집합 자료형 (0) | 2023.03.21 |
|---|---|
| [Python] 사전, 집합 자료형 (0) | 2023.03.20 |
| [Python] 리스트 자료형 (0) | 2023.03.16 |
| [Python] 수 자료형 (0) | 2023.03.15 |