IT/python

<문자열 처리> 관련 함수들 - python

bs engineer 2022. 9. 20. 14:56
str = "Hello Python"

 

대문자, 소문자

#변경
str.upper() 
str.lower()

# 여부확인
str.isupper()
str.islower()

 

문자열 영어/숫자 확인

str.isalpha() # False 공백이 존재하므로!
str[:5].isalpha()# True "Hello"

#숫자 여부 확인
str.isdigit()

# 영문자, 숫자 여부 판별
str[:5].isalnum() # True

 

일부 변경

str.replace("Hello", "Hi") # Hello를 Hi로 변경
str.replace(" ","") # 공백 삭제

 

문자열 공백/특정문자 제거

str2 = "           Hello        "
str2.strip() #Hello
str2.lstrip() #Hello        .
str2.rstrip() #           Hello

str3 = "aaaaabbbbbbaaaaa"
str3.strip("a") # bbbbbb
str3.lstrip("a") #bbbbbbaaaaa

str3.strip("ab") # a또는 b가 나오지 않을 때까지 제거이므로 -> 공백 출력

str4 = "aabbccbb"
str4.strip("ab") # cc 출력됨

 

문자열 찾기

  • find : 찾는 문자열이 처음 나오는 위치 리턴, 없을 경우 -1
  • count : 해당 문자열의 개수 리턴
    str.find("Py") #6 
    str.count("o") #2

 

문자열 슬라이싱

str[start:end:step] : index가 start부터 (end-1)까지 step씩 slicing

str[:] # 처음부터 끝까지, Hello Python
str[1:] # 1부터 끝까지 ello Python
str[:2] # He
str[:-2] #처음부터 끝-2번째까지 Hello Pyth
str[::2] # step 2씩 HloPto
str[::-1] # 거꾸로 nohtyP olleH

 

문자열 분리

str.split() #['Hello', 'Python']
str.split("o") #['Hell', ' Pyth', 'n']

 

문자열 결합

str2 = ["abc","def"]

" ".join(str2) #abc def
",".join(str2) #abc,def
"".join(str2) #abcdef

 

문자열 거꾸로

str.reverse()

str = str[::-1] 
# 에러시 아래 코드로 작성
str[:]=str[::-1]

 

조건에 맞게 정렬

data = ['1 A', '1 B', '3 A', '4 D', '5 B']

 

뒤의 문자 순으로 정렬하는 방법

sort의 key인자를 사용

def func(x):
	return x.split()[1], x.split()[0]

data.sort(key=func)
data.sort(key=lambda x: (x.split()[1], x.split()[0]))