-
String 문자열 관련 methods파이썬 Study/라이브러리 2021. 3. 14. 00:48
참고 :
https://dpdpwl.tistory.com/119
■ 기본으로 사용되는 method
1) count
- 특정 단어의 수를 구함, 없으면 0을 반환
string = 'How do you do? I like Python like you do. I always do' print(f'count of do : {string.count("do")}') >>> count of do : 4
2) find
- find는 문자열중에 특정문자를 찾고 위치를 반환, int 입력시 그 index 시작으로 search
- 없을경우 -1을 리턴
- rfind : 뒤에서 부터 search
- index / rindex : find / rfind와 동일하지만 없을 때 exception 발생
s = '가나다라 마바사아 자차카타 파하' s.find('마') >>> 5 s.find('가') >>> 0 s.find('가',5) >>> -1
3) in
- bool return 으로 존재 여부 검사
string = 'How do you do? I like Python like you do. I always do' print(f' hi in string? : {"hi" in string}') print(f' do in string? : {"do" in string}') >>> False >>> True
4) startswith
- startswith는 문자열이 특정문자로 시작하는지 여부를 알려줌
- True나 False 를 반환
- 두번째 인자를 넣음으로써 찾기시작할 지점을 정할 수 있음
s = '가나다라 마바사아 자차카타 파하' s.startswith('가') >>> True s.startswith('마') >>> False s.startswith('마',s.find('마')) # find는 '마' 의 시작지점을 알려줌 : 5 >>> True s.startswith('마',1) >>> False
5) endswith
- endswith는 문자열이 특정문자로 끝나는지 여부
- 두번째인자로 문자열의 시작과 세번째인자로 문자열의 끝을 지정
s = '가나다라 마바사아 자차카타 파하' s.endswith('마') >>> False s.endswith('하') >>> True s.endswith('마',0,10) >>> False s.endswith('마',0,6) >>> True
■ 알면 도움되는 method
- 매써드 검색하는 법 ↓
더보기print(dir(str))
print(help(str.strip)) # 메써드 사용법 설명 함수
>>>
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
Help on method_descriptor:
ssttrriipp(self, chars=None, /) Return a copy of the string with leading and trailing whitespace removed. If chars is given and not None, remove characters in chars instead. None
1) 문자 분리
(a) partition
- param 문자로 문자열 나눔 / 튜플 리턴 + 구분자 포함
string = '010-1234-5678' part_result = string.partition('-') print(part_result) >>> ('010', '-', '1234-5678')
(b) rpartition
- 뒤에서 부터, partition과 동일
string = '010-1234-5678' part_result = string.rpartition('-') print(part_result) >>> ('010-1234', '-', '5678')
(c) split
- 구분자 제외, 해당 문자열로 문자열 나눔 / 리스트 리턴 + 구분자 제외
- 요소 : 구분자, 해당 num 만큼 나눌 integer
string = '010-1234-5678' part_result_1 = string.split('-') print(f'part_result_1 : {part_result_1}') >>> part_result_1 : ['010', '1234', '5678'] part_result_2 = string.split('-', 1) # 1 초과 무시 print(f'part_result_2 : {part_result_2}') >>> part_result_2 : ['010', '1234-5678'] part_result_3 = string.split('-', 3) # 3 초과 무시 print(f'part_result_3 : {part_result_3}') >>> part_result_3 : ['010', '1234', '5678']
(d) rsplit
- split 함수와 동일, 뒤에서 부터 나눔
(e) splitlines
- \n , \r 에 대해서 문장분리 기능
string = '010\n1234\t5678\rabcd' tmp_return = string.splitlines() print(f'tmp_return : {tmp_return}') >>> tmp_return : ['010', '1234\t5678', 'abcd']
(f) strip
- 공백 제거용으로 PYTHON 3에서는 multiple character removal 안됨
- strip → 기본 좌/우 공백 모두 제거
- lstrip / rstrip → 좌 / 우 각각 공백 제거 가능
string = ' Python, I love it !!!!@#$%^ Thank you. ' tmp_string = string.strip() print(f'tmp_string strip() : {tmp_string}') tmp_string = string.strip('!') print(f'tmp_string strip("!") : {tmp_string}') tmp_string = string.strip('!@#$%^') print(f'tmp_string strip("!@#$%^") : {tmp_string}') >>> tmp_string strip() : Python, I love it !!!!@#$%^ Thank you. tmp_string strip("!") : Python, I love it !!!!@#$%^ Thank you. tmp_string strip("!@#$%^") : Python, I love it !!!!@#$%^ Thank you.
(g) replace
- 문자열 특정 값이 있으면 대체
string = 'Python, I love you!' tmp_string = string.replace('love', 'hate') print(f'tmp_string : {tmp_string}') >>> tmp_string : Python, I hate you!
2) 문자열에 대한 작업
(a) format
- 특정 format으로 출력, 중괄호로 받음
string = '{} loves {} as always' print(f"string : {string.format('He', 'Python')}") >>> string : He loves Python as always test = 'Hello {}'.format('Bob') print(test) >>> Hello Bob test = 'Hello {name}. count: {count}' test.format(name='Bob', count=5) >>> 'Hello Bob. count: 5'
(b) join
- list안의 문자열들을 결합
- join 메써드 부르는 string 값으로 문자열 사이를 연결
lister = ['Python2', 'Python3', 'Java'] print(' and '.join(lister).format('He')) >>> Python2 and Python3 and Java
■ 몰라도 되지만 알면 유용한 method들
1) 판별 by 'is'
- is 로 시작하는 메써드의 결과는 bool이고 판별하는 방식임
충족시 return : True else False
isalnum() - 알파벳 또는 숫자
isalpha() - 알파벳
isdecimal() - 숫자(decimal, 10진수)
isdigit() - 숫자(digit, 10진수)
isidentifier() - 식별자로 사용 가능
islower() - 소문자
isnumeric() - 숫자
isspace() - 공백
istitle() - title 형식 (단어마다 첫 글자가 대문자)
isupper() - 대문자
2) 특정 변경
- 파이썬 string은 immutable(변경불가)
- 매써드 사용시 새로운 값을 리턴 해준다
1) upper
- 대문자 변경
2) lower
- 소문자 변경
3) swapcase
- 대문자 → 소문자 / 소문자 → 대문자
4) capitalize
- 첫 문자를 대문자로 변경 / 다른 곳은 소문자로 변경
string = 'i love python. I like CODING.' tmp_return = string.upper() print(f'tmp_return upper : {tmp_return}') tmp_return = string.lower() print(f'tmp_return lower : {tmp_return}') tmp_return = string.swapcase() print(f'tmp_return swapcase : {tmp_return}') tmp_return = string.capitalize() print(f'tmp_return capitalize : {tmp_return}') >>> tmp_return upper : I LOVE PYTHON. I LIKE CODING. tmp_return lower : i love python. i like coding. tmp_return swapcase : I LOVE PYTHON. i LIKE coding. tmp_return capitalize : I love python. i like coding.
반응형'파이썬 Study > 라이브러리' 카테고리의 다른 글
isinstance - built in function (1) 2021.03.14 collections - deque (1) 2021.03.14 re (regex - regular expression) (1) 2021.03.13 hashing (1) 2021.03.11 collections - defaultdict (1) 2021.03.11