문자열 관련 유용한 함수들
1. “문자열”[i]
- 파이썬에서는 문자열 뒤에 직접 [i]를 붙여 그 문자열의 i번째 문자에 접근할 수 있다.
2. join()
1
2
list1 = ["a", "b", "c", "d"]
str1 = "".join(list1)
- 만약 문자들이 interable 객체의 각 원소에 나뉘어져 있을 때 이들을 하나로 합한 문자열을 구하고 싶다면 join() 함수의 인자로 해당 iterable 객체를 전달하면 된다.
- join() 함수의 앞에 오는 따옴표 안에 문자열을 넣으면, 인자로 전달된 객체의 각 원소 사이에 그 문자열이 끼워져서 합쳐진 문자열이 리턴된다.
3. 문자열 포매팅
1) format() 함수 이용
1
2
3
4
num1 = 15
num2 = 4
num3 = 1
str1 = "num3 = {2}, num2 = {1}, num1 = {0}".format(num1, num2, num3)
- format() 함수는, 그 앞의 문자열에 중괄호쌍({})과 숫자들이 있을 경우 함수에 인자로 들어온 변수들에 들어온 순서대로 인덱스 번호를 매긴 후 해당 인덱스 번호와 일치하는 중괄호쌍에 그 변수를 대입하여 새로운 문자열을 리턴한다.
- 중괄호쌍은 있으나 그 안에 숫자가 없다면, 그 중괄호쌍이 그 문자열 안에서 등장한 순서대로 그 중괄호쌍에 인덱스 번호가 붙는다.
2) C 스타일 포매팅
1
str1 = "num3 = %d, num2 = %d, num1 = %d" % (num3, num2, num1)
- C 스타일로 쌍따옴표 안에 % + 알파벳을 넣는 방식으로 문자열 포매팅을 할 수 있다. 다만 파이썬에서는 문자열 뒤에 쉼표가 아니라 % 연산자와 튜플을 사용하여 포매팅을 한다.
3) f 문자 포매팅
1
str1 = f"num3 = {num3}, num2 = {num2}, num1 = {num1}"
- Python 3.6부터는 쌍따옴표 앞에 알파벳 f를 쓸 경우 그 안에 쓴 중괄호 사이에 변수명을 바로 쓰는 식으로 문자열 포매팅을 할 수도 있다.
4. split()
1
2
3
str1 = "1, 2, 3, 4, 5"
spl1 = str1.split()
str2 = str1.split(', ')
- split() 함수는 인자로 전달된 구분자로 문자열을 나누어 리스트에 담아 이를 리턴한다. 인자가 주어지지 않는다면 띄어쓰기를 구분자로 문자열을 나눈다.
- 어떤 칸은 띄어쓰기와 쉼표가 둘 다 있고 어떤 칸은 쉼표만 있는 식으로 문자열 내 각 단위문자들이 불규칙하게 떨어져 있다면 정규표현식과 findall() 함수를 쓰는 것이 대안이 될 수 있다. 정규표현식으로 split() 함수와 유사하게 코드를 쓰면 다음과 같다.
1
spl1 = re.findall('\w+', str1)