1. 바꾸기
- replace('바꿀문자열', '새문자열') : 단어 >> 문자열 바꾸기
- str.maketrans('바꿀문자', '새문자') : 단어안의 스펠링 >> 문자열 바꾸기
- .translate(변수명) : 번역. 즉 apply
- .upper() : 문자열을 모두 대문자로 바꿈
- .lower() : 문자열을 모두 소문자로 바꿈
2. 분리하고 합체하기
- .split('기준문자열') : 기준문자열을 기준으로 스트링을 분리함.
- '구분자'.join(리스트) : 구분자를 리스트사이에 끼워서 하나의 스트링으로 만듬
3. 삭제
- .strip('삭제할것') : 왼(lstrip),오(rstrip),양쪽 다 됨
4. 정렬
- .ljust(숫자) : 왼,오(rjust) 다됨. 숫자만큼 문자열의 길이를 만들어 놓고, 정렬함.
- .center(숫자) : 가운데 정렬
5. 왼쪽에 0 채우기
- .zfill(숫자) : zerofill. 왼쪽에 남는만큼 0을 채움
6. 위치 찾기
- .find('찾을문자열') : 처음 찾은 문자열의 인덱스를 반환하고 없으면 -1을 반환. 오른쪽부터는 rfind
- .index('찾을문자열') : find와 동일 .다만 없으면 error남. 오른쪽부터는 rindex
7. 갯수 세기
- .count('문자열') : 현재 문자열에서 특정 문자열이 몇 번 나오는지 반환함
# replace
>>> 'Hello, world!'.replace('world', 'Python')
'Hello, Python!'
# str.maketrans
# .translate(table)
>>> table = str.maketrans('aeiou', '12345')
>>> 'apple'.translate(table)
'1ppl2'
# 대문자로
>>> 'python'.upper()
'PYTHON'
# 소문자로
>>> 'PYTHON'.lower()
'python'
-------------------
# spllit('기준문자열')
>>> 'apple, pear, grape, pineapple, orange'.split(', ')
['apple', 'pear', 'grape', 'pineapple', 'orange']
# '구분자'.join(리스트)
>>> ' '.join(['apple', 'pear', 'grape', 'pineapple', 'orange'])
'apple pear grape pineapple orange'
-------------------
# 공백 삭제
>>> ' Python '.lstrip() # left
'Python '
>>> ' Python '.rstrip() # R
' Python'
>>> ' Python '.strip() # both
'Python'
# 문자 삭제
>>> ', python.'.lstrip(',.')
' python.'
-------------------
# 문자 정렬
>>> 'python'.ljust(10) # left
'python '
>>> 'python'.center(10)
' python '
-------------------
# 왼쪽에 0 채우기
>>> '35'.zfill(4) # 숫자 앞에 0을 채움
'0035'
>>> '3.5'.zfill(6) # 숫자 앞에 0을 채움
'0003.5'
>>> 'hello'.zfill(10) # 문자열 앞에 0을 채울 수도 있음
'00000hello'
-------------------
# 위치 찾기
>>> 'apple pineapple'.find('xy')
-1
>>> 'apple pineapple'.rfind('xy')
-1
>>> 'apple pineapple'.index('pl')
2
>>> 'apple pineapple'.rindex('pl')
12
-------------------
# 갯수 세기
>>> 'apple pineapple'.count('pl')
2
1. % 서식 지정자 (format specifier)
%로 시작하고 자료형을 뜻하는 문자가 붙음.
두번째 % 이후의 내용이 첫번째 '%' 의 자리에 들어가게됨.
처음 %부분은 삐처리 하고 두번째 % 뒤에 답을 알려주는 방식
- '%s' % '문자' : 문자 string '나는 %s삐이 입니다.' % '호랑이'
- '%d' % 숫자 decimal integer '나는 %d삐이 년생입니다.' % 2030
- '%f'' % 실수 fixed point
- '%.자릿수f' % 숫자
- '%d %s' % (숫자, '문자열') '오늘은 %d삐월 %s삐요일입니다' % (3,'화')
- '%숫자s' % '문자열' : 문자열의 길이를 숫자만큼 늘려서 오른쪽정렬. 자릿수를 맞출때 씀.
- '%10s' % 'python' >> -10 하면 왼쪽에서부터 정렬
>>> 'I am %s.' % 'james'
'I am james.'
>>> 'I am %d years old.' % 20
'I am 20 years old.'
>>> '%f' % 2.3
'2.300000'
>>> '%10s' % 'python'
' python'
>>> '%-10s' % 'python'
'python '
>>> '%10d' % 150
' 150'
>>> '%10d' % 15000
' 15000'
>>> '%10.2f' % 2.3
' 2.30'
>>> '%10.2f' % 2000.3
' 2000.30'
>>> 'Today is %d %s.' % (3, 'April')
'Today is 3 April.'
2. { } 문자열 포매팅 (String Formatting) or format 함수
'{인덱스}' .format(값) : { } 이 위치에 format 뒤의 데이터의 인덱스 값을 넣어줘.
' Let me see.. {1} {2} {0}?'. format('me', 'You', 'love')
>>> 'Hello, {0} {2} {1}'.format('Python', 'Script', 3.6)
'Hello, Python 3.6 Script'
>>> 'Hello, {} {} {}'.format('Python', 'Script', 3.6)
'Hello, Python Script 3.6'
>>> language = 'Python'
>>> version = 3.6
>>> f'Hello, {language} {version}'
'Hello, Python 3.6'
>>> '{0:<10}'.format('python') # 왼쪽<<<
'python '
>>> '{0:>10}'.format('python') # 오른쪽>>>
' python'
>>> '{:>10}'.format('python') # 위와 같음. 훨씬 많이씀.
' python'
>>> language = 'Python'
>>> version = 3.6
>>> f'Hello, {language} {version}' # f'문자열' 자체가 format 함수
'Hello, Python 3.6'
3. 응용하기
숫자 자릿수 갯수 맞추기 : 자릿수만큼 맞출꺼야. 숫자를.
- 정수
- '%0자릿수d' % 숫자
- '{인덱스:0자릿수d'}'.format(숫자)
>>> '%03d' % 1
'001'
>>> '{0:03d}'.format(35)
'035'
- 실수
- '%0총자릿수.소숫점뒤로자릿수f' % 숫자
- '{인덱스:0총자릿수.소숫점뒤로자릿수f'}.format(숫자)
>>> '%08.2f' % 3.6
'00003.60'
>>> '{0:08.2f}'.format(150.37)
'00150.37'
- 정렬
- '{인덱스:채울숫자<총길이}' .format(채울자료)
>>> '{0:0<10}'.format(15) # 길이 10, 왼쪽으로 정렬하고 남는 공간은 0으로 채움
'1500000000'
>>> '{0:0>10}'.format(15) # 길이 10, 오른쪽으로 정렬하고 남는 공간은 0으로 채움
'0000000015'
>>> '{0:0>10.2f}'.format(15) # 길이 10, 오른쪽으로 정렬하고 소수점 자릿수는 2자리
'0000015.00'
>>> '{0: >10}'.format(15) # 남는 공간을 공백으로 채움
' 15'
>>> '{0:>10}'.format(15) # 채우기 부분을 생략하면 공백이 들어감
' 15'
>>> '{0:x>10}'.format(15) # 남는 공간을 문자 x로 채움
'xxxxxxxx15'
참고 | 금액에서 천단위로 콤마 넣기
숫자 중에서 금액은 천단위로 ,(콤마)를 넣죠? 파이썬에서는 간단하게 천단위로 콤마를 넣을 수 있습니다.
먼저 format 내장 함수를 사용하는 방법입니다. 다음과 같이 format 함수에 숫자와 ','를 넣어줍니다.
format(숫자, ',')
>>> format(1493500, ',')
'1,493,500'
format 함수는 서식 지정자와 함께 사용할 수 있습니다. 다음은 콤마를 넣은 숫자를 오른쪽 정렬합니다.
>>> '%20s' % format(1493500, ',') # 길이 20, 오른쪽으로 정렬
' 1,493,500'
포매팅에서 콤마를 넣으려면 다음과 같이 :(콜론)뒤에 ,(콤마)를 지정하면 됩니다.
>>> '{0:,}'.format(1493500)
'1,493,500'
만약 정렬을 하고 싶다면 정렬 방향과 길이 뒤에 콤마를 지정해줍니다.
>>> '{0:>20,}'.format(1493500) # 길이 20, 오른쪽으로 정렬
' 1,493,500'
>>> '{0:0>20,}'.format(1493500) # 길이 20, 오른쪽으로 정렬하고 남는 공간은 0으로 채움
'000000000001,493,500'
728x90
'Study (Data Science) > Python' 카테고리의 다른 글
프로그래머스) 숫자 비교하기 (0) | 2022.11.27 |
---|---|
프로그래머스) 두 수의 차 (0) | 2022.11.27 |
Unit 22. 2차원 리스트 (0) | 2022.11.25 |
Unit 22. List 와 Tuple / 리스트표현식(list comprehension) (1) | 2022.11.25 |
참고) Stack & Queue (0) | 2022.11.25 |
댓글