본문 바로가기
Programming Language/Python

[python] 파이썬 - 문자열 메소드 예제 ( 쪼개기, 합치기, 문자 식별, 문자 대체 등)

by ggyongi 2021. 3. 27.
반응형

코딩테스트 문제를 풀면서 느낀건 문자열에 관한 메소드를 많이 알수록 확실히 더 쉽게 가거나 유리해질 수 있다. 

이곳에 유용할 만한 문자열 메소드를 다 써보겠다.

 

 

<기본 메소드>

text = 'hello'

text.isalpha() # check if it consists of only alphabet.
text.isalum() # check if it consists of only alphabet or number.
text.isdigit() # check if it consists of only number.


text.islower() # check if it consists of only lower case.
text.isupper() # check if it consists of only upper case.


text.index('e') # return the index of char.
1
text.find('a') # it is same with .index() but it returns -1 if the char dosen't exist.
-1


# the order of alphabet.
text.min('abc') 
a
text.max('abc')
c


# check if char is in string
't' in text
False

# count
text.count('l')
2

# join
>> w1='ab'
>> w2='cd'
>> w1.join(w2)
>> w1
'abcd'

>> w1='ab'
>> w2='cd'
>> w3 = ' '.join([w1,w2])   # list consists of only string
>> w3
'abcd'

 

<문자열 계산>

eval()은 연산부호가 섞인 문자열을 자동으로 계산하여 int/float형으로 리턴한다. 연산의 우선순위도 잘 지켜진다.

>>> a = '10+1/3'

>>> print(a)
10+1/3

>>> print(eval(a))
10.333333333333334

>>> print(type(eval(a))
<class 'float'>




        

 

<문자열 대체>

- replace(문자열 지정, 대체할 문자열)

사용 예시 : 반복되는 점을 하나로 줄이기

word = '...ab..c....d...e..f.'
while '..' in word:
    word = word.replace('..','.')
print(word)

.ab.c.d.e.f.

- 반복되는 문자열 없애기

word = 'aabbbbcccddef'
answer = ''
for w in word:
    if answer[-1:] != w:
    answer += w
return answer

'abcdef'

 

<문자열 채우기>

rjust - > 문자열을 오른쪽으로 정렬 및 공백을 지정문자로 채워줌

ljust - > 문자열을 오른쪽으로 정렬 및 공백을 지정문자로 채워줌

zfill - > 문자열을 오른쪽으로 정렬 및 공백을 0으로 채워줌

a = 'abc'
a= a.rjust(10,"r")
print(a)

a = 'abc'
a= a.ljust(10,"r")
print(a)

a = 'abc'
a= a.zfill(10)
print(a)


rrrrrrrabc
abcrrrrrrr
0000000abc

 

<문자열 쪼개기>

# split() has two parameters. sep (default= ' ') and maxSplit(default is -1, it means no limit) 
>>text = 'a b c d e'

>>text.split()
['a','b','c','d','e']

>>text.split(' ', 1)
['a','b c d e']

>>text.split(' ', 2)
['a','b', 'c d e']

 

< 전처리 메소드>☆

전처리 메소드 역시 요긴하게 사용될 수 있으므로 잘 알아두어야 한다.

# it needs 'import re'
# re.sub('pattern', 'replace func', 'string', number of change)

>>import re
>>a= 'hello my name is lee'

# replace 'hello' with 'hi'
>>re.sub('hello','hi',a)
'hi my name is lee'

# replace 'hello' and 'my' with 'hi'
>>re.sub('hello|my','hi',a)
'hi hi name is lee'

# All letter in list is replaced with 'hi'
# alert: comma is also can be replaced. Don't confused.
>>re.sub('[hello]','hi',a)
'hihihihihi my namhi is hihihi'


# [] 안에 [또는 ]를 쓰고 싶으면 앞에 \을 붙여주면 됨
new_id = re.sub('[~!@#$%^&*()=+\[{\]}:?,<>/]', '', new_id)



# re.sub('[0-9]' ...  -> it changes all number.
# re.sub('[a-z]' ... -> it changes all lower cases.
# re.sub('[A-Z]' ... -> it changes all upper cases.
# re.sub('[^a-z]' ... -> it changes everything except for all lower cases.
# re.sub('[^a-zA-Z]' ... -> it changes everything except for all lower and upper cases.
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글