이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
3. 문자열 관련 함수 알아보기¶
- 위 코드에서 단어에 괄호가 들어 있는 경우가 꽤 있음
- 단어만으로 체크를 하려 했으므로, 의도와 다르기 때문에 없애주자
우선 주요 문자열 관련 함수 정리해보기¶
3.1. 문자열에 있는 특정 문자 갯수 세기 (count 함수)¶
In [130]:
string = 'Dave David'
string.count('D') # 문자열에 D 가 몇 번 나올까요? 대소문자도 구별함
Out[130]:
- 간단 연습: string에 v 는 몇 번 나올까?
- 간단 연습: string에 vid 는 몇 번 나올까? (꼭 문자 하나만 되는 것이 아니라, 연결된 문자열도 가능)
In [137]:
string = 'Dave ID is dave'
string.index('I') # 맨 앞 자리부터 0, 1, ... 순으로 위치를 표시
Out[137]:
- 간단 연습: string에 있는 D의 위치 확인하기 (가장 먼저 나오는 위치를 알려줌)
- 간단 연습: string에 x의 위치 확인하기 (해당 문자가 없으면 에러가 남)
In [138]:
string.index('x')
해당 문자가 문자열에 없을 때, 에러를 안낼 수는 없을까? --> find 함수를 사용하면 됨¶
- find 함수는 해당 문자가 문자열에 없으면 -1 을 리턴함 (에러는 내지 않음)
- 이외에는 index 함수와 동일
In [139]:
string = 'Dave ID is dave'
string.find('x') # 맨 앞 자리부터 0, 1, ... 순으로 위치를 표시
Out[139]:
- 간단 연습: string에 d의 위치 확인하기
3.3. 문자열 사이에 다른 문자 넣기¶
In [141]:
string = "12345"
comma = ','
comma.join(string) # 껴넣을 문자.join(문자열)
Out[141]:
- 간단 연습: 문자열 사이에 ... 넣기
3.4. 문자열 앞뒤에 공백 지우기¶
- 실제 현실 세계에 있는 문자열 데이터를 정리하다보면, 문자열 앞뒤에 공백 또는 기호가 있는 경우가 많음
In [146]:
string = " Dave "
string.strip() # 앞 뒤 공백을 다 지움
Out[146]:
In [151]:
string2 = " David "
string2.strip() # 앞 뒤 공백이 여러개 있어도 한번에 다 지움
Out[151]:
In [152]:
string2.lstrip() # 앞쪽(문자열 왼쪽)만 지우기 left strip 의 약자
Out[152]:
In [153]:
string2.rstrip() # 앞쪽(문자열 오른쪽)만 지우기 right strip 의 약자
Out[153]:
3.5. 영문자 대소문자로 변환하기¶
- 대소문자를 구별하기 때문에, 대소문자 구별하지 않고 처리를 하기 위해 임의로 대문자 또는 소문자로 다 바꿀 때가 있음
소문자를 대문자로 바꾸기¶
In [155]:
string = 'Dave'
string.upper() # 본래 대문자는 놔두고, 소문자인 문자만 대문자로 변경
Out[155]:
대문자를 소문자로 바꾸기¶
In [156]:
string = 'Dave'
string.lower() # 본래 소문자는 놔두고, 대문자인 문자만 대문자로 변경
Out[156]:
3.6. 문자열을 나누기¶
In [167]:
string = "Dave goes to Korea"
string.split() # split() 인자를 넣지 않으면 디폴트로 스페이스를 기준으로 분리
Out[167]:
In [168]:
string.split(' ') # 명시적으로 스페이스를 기준으로 분리하겠다고 넣어줘도 됨
Out[168]:
In [165]:
string = "Dave/goes/to/Korea"
string.split('/') # split() 인자를 넣으면 해당 인자를 기준으로 분리
Out[165]:
프로그래밍 연습
string = "10,11,22,33,44" 를 컴마(,) 로 분리해서 리스트 변수를 만들어 각 값을 정수형 리스트 데이터로 넣기
string = "10,11,22,33,44" 를 컴마(,) 로 분리해서 리스트 변수를 만들어 각 값을 정수형 리스트 데이터로 넣기
int('11') 을 실행하면 숫자 11로 변환
3.7. 문자열 중 일부를 다른 문자로 바꾸거나, 삭제하기¶
In [157]:
string = "David goes to Korea"
string.replace("David", "Dave") # David 를 Dave 로 바꾸기
Out[157]:
In [159]:
string2 = "(Dave)"
string2.replace("()", "") # 연결된 문자열은 해당 문자열이 동일하게 매칭이 되어야 함
Out[159]:
In [160]:
string2.replace("(", "")
Out[160]:
In [161]:
string2.replace(")", "")
Out[161]:
In [163]:
string2 = string2.replace("(", "") # ( 가 삭제된 문자열로 변수 값을 덮어 씌운 후에 다시 ) 를 삭제하면 됨
string2.replace(")", "")
Out[163]:
프로그래밍 연습
string = "10,11,22,33,44" 에서 컴마(,) 를 / 으로 대체하기
string = "10,11,22,33,44" 에서 컴마(,) 를 / 으로 대체하기