알고리즘/Array

string methods

Algorithmus 2022. 3. 3. 10:06

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