Python의 문자열(string) 관련 함수와 상수를 소개한다. ascii 코드에 속하는 문자, 소문자들, 숫자들, 16진수, 구두점 등을 조건으로 걸어 문자열 관련 처리를 할 경우에 프로그래머가 직접 이를 포함한 array를 만드는 불편함을 덜어주는 유용한 상수라고 할 수 있다.
string 모듈
먼저 string 모듈(.py)은 유용한 상수를 많이 포함하고 있다.
import string
L = [
string.ascii_letters,
string.ascii_lowercase,
string.ascii_uppercase,
string.digits,
string.hexdigits,
string.punctuation
]
for l in L:
print(l)
'''
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789abcdefABCDEF
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
'''
ascii_letters, digits, hexdigits는 코테시에 특히 유용하다. 그리고 punctuation이나 아래의 whitespace는 NLP(자연어처리)시에 유용하다. printable은 나머지 모든 상수의 합집합이라고 보면 될 것 같다.
string.whitespace # ' \t\n\r\x0b\x0c'
string.printable # '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
문자로 표시된 숫자를 숫자로 바꿀 때는 다음과 같이 하면 된다.
c = '3'
string.digits.index(c) # 3
16진수를 숫자로 바꿀 때는 다음이 유용하다. 상수가 0-index로 출발하기 때문이다.
c = 'B'
string.hexdigits.index(c.lower()) # 11
문자형(str) 메소드
파이썬의 문자형 자료구조는 몇 가지 유용한 메소드를 포함하고 있다. 아래에서 isalnum은 alphanumeric인지를 알려준다.
c = 'BC'
L = [c.isalnum(),
c.islower(),
c.isdigit()]
for l in L:
print(l)
'''
True
False
False'''
문자열 관련 유용한 메소드를 소개한다.
s = 'Ryan likes Muzi'
''.join(reversed(s))
s.find(' ', 0) # finds substring ' ' from index 0 and returns the index right after it
s.startswith('Ry') # True
s.endswith('uz') # False
마지막으로, 문자열은 immutable하므로, 다음은 새로운 문자열을 만든다는 것을 기억해야 한다.
s = s[1:]
s += 'asc'
반응형
'알고리즘 > Array' 카테고리의 다른 글
Circular Array (0) | 2022.05.29 |
---|---|
비교 (0) | 2022.05.08 |