프로그래밍/Python

Python-14) 문자열 공백 제거, 길이, 알파벳 확인, : Python strip, Python str, Python install

LeeSeunghyuk 2020. 12. 13. 18:03
반응형

안녕하세요 이승혁입니다.

 

이번 시간에는 지난 시간에 이어 문자열을 가지고 여러 변환, 조작등을 하는 실습을 진행해 보도록 하겠습니다.

 

< 실습 리스트 > 

- 문자열 길이 구하기

- 문자열 알파벳 or 숫자 확인

- 문자열 대소문자 변환

- 문자열 공백 제거

- 문자 자료형 변환

- 문자열에 특정 문자 개수 세기

- 문자열의 특정 문자 위치 찾기

- 특정 문자로 분리하기

- 특정 문자로 결합하기

- 특정 문자를 다른 문자로 변환하기

 


※ 문자열 길이 구하기

 

     len함수를 사용하여 문자열의 구성 문자 개수를 확인할 수 있습니다.

     리스트와 같은 반복가능한(iterable) 객체에 대해서는 구성 요소의 개수를 반환해 줍니다.

a='Tistory blog'
print(len(a)) # 12

b=range(1,10)
print(len(b)) # 9

c=[1,2,3,4,5]
print(len(c)) # 5


 문자열 알파벳 or 숫자 확인

 

     문자열은 숫자, 알파벳, 한글, 특수문자 등으로 구성됩니다.

     3가지 방법으로 문자(열)을 확인할 수 있습니다.

     1. 문자가 숫자로 이루어져 있는가? --> isdigit()

     2. 문자가 언어(알파벳,한글)로 이루어져 있는가? --> isalpha()

     3. 언어가 모두 숫자와 언어로 이루어져 있는가 ? / 특수문자나 기호는 없는가 ?  --> isalnum()

 

    각 함수들은 True / False 를 리턴합니다.

a='Tistory'
b='7815267'
c='7815267b?'

print(a.isalpha())  # True
print(b.isdigit())  # True
print(c.isalnum())  # False


 문자열 대소문자 변환

 

     소문자 알파벳을 대문자로, 대문자 알파벳을 소문자로 변환할 수 있습니다.

     대문자로 변경에는 upper 함수를, 소문자로 변경에는 lower 함수를 사용합니다.

A='lee '
B='SEUNG HYUK'

print(A.upper())
print(B.lower())
print(A[0].upper()+A[1:].lower()+B.lower())


 문자열 공백 제거

 

     문자열 객체는 좌, 우 공백을 제거한 결과를 반환해주는 strip 메소드를 갖습니다. 

     오른쪽 공백 제거 --> rstrip()

     좌측 공백 제거 --> lstrip()

     좌우 공백 제거 --> strip()

공백을 확인할 수 있다.

공백이 사라졌는지 확인하기 위해 언더바('_')를 붙여 출력해 보았습니다.

순서대로 오른쪽 공백, 왼쪽 공백, 좌우 공백이 사라진 것을 확인할 수 있습니다.

 

마지막에 생긴 공백은 그냥 출력해도 드래그 하면 생기는 것을 확인했습니다.


 문자 자료형 변환

 

     파일에 기록된(csv,txt,xlsx...) 파일들을 로드(load)하면 숫자는 문자열로 처리됩니다.

     100으로 기록된 숫자 100이 '100'으로 사용되게 됩니다.

     따라서 자료형을 변환해 줍니다. --> int or float

     반대로 숫자가 아닌 문자열로 사용되는 경우도 변환해 줍니다. --> str

org_num='100'
org_txt=100

trans_num=int(org_num)
trans_num2=float(org_num)
trans_txt=str(100)

print(type(trans_num),trans_num)
print(type(trans_num2),trans_num2)
print(type(trans_txt),trans_txt)

변수의 자료형이 변환되었음을 확인할 수 있습니다.


 특정 문자 개수 세기

 

     문자열 객체의 메소드 중 count 메소드는 문자열을 이루고 있는 문자 중, 특정 문자의 개수를 반환해 줍니다.

     해당 문자열에서 문자의 개수를 찾습니다.

     '문자열'.count('찾을문자')

txt='aslkdrjfoiewnaglkdnfdsfvjkxzcbfiewahbgjf,amvbcaskjlvghaeiuofgasdg'

print(txt.count('f'))

     문자열 객체 뿐 아니라 리스트 객체 역시 count 메소드를 가지고 있습니다.

listdata=[1,2,3,4,1,2,3,4,1,2,3,4,5]

print(listdata.count(1))
print(listdata.count(5))

 

응용 ) 각 원소의 개수 출력하기

listdata=[1,2,3,4,1,2,3,4,1,2,3,4,5]
a=list(set(listdata))
for i in a:
    print('%d의 개수 : %d'%(i,listdata.count(i)))

쉽고 편하게 이루고 있는 원소들을 파악할 수 있습니다.

물론 데이터가 숫자 뿐 아니라 영어나 기타 기호들이 섞인 경우 데이터를 정제 하는 작업이 추가되어야 합니다.


 

이번 시간은 문자열을 조작해 보았습니다.

다음시간엔 이어서 문자열의 특정 문자 위치 찾기, 특정 문자로 분리하기,  특정 문자로 결합하기, 특정 문자를 다른 문자로 변환하기에 대한 실습을 진행해 보도록 하겠습니다.

 

읽어주셔서 감사합니다.

 

 

 

반응형