728x90
반응형
24. 문자열 응용
24.1 문자열 조작
- 문자열 바꾸기
>>> s = 'hello, world'.replace('world', 'python')
>>> print(s)
hello, python
- 문자 바꾸기: 문자열 치환함수
1) table = str.maketrans('abcde'(바꿀문자), '12345'(새문자)) 는 'abcde' 각 문자를 새로운 문자로 치환해준다. 따라서 a = 1, b= 2 ... e =5가 된다.
*** 이 때 바꿀문자와 새문자의 개수는 같아야 한다.
2) 'apple'.translate(table)로 'apple'이라는 문자를 치환해주면 위에서 변환된 것처럼 a = 1, e= 5로 바뀌고, p와 l은 치환된 정보가 없기 때문에 기존과 동일한 문자가 출력된다.
>>> table = str.maketrans('abcde', '12345')
>>> apple = 'apple'.translate(table)
>>> print(apple)
1ppl5
# 문자열 분리
>>> s = 'apple pear grape pineapple orange'.split()
>>> print(s)
['apple', 'pear', 'grape', 'pineapple', 'orange']
>>> s = 'apple, pear, grape, pineapple, orange'.split(', ')
>>> print(s)
['apple', 'pear', 'grape', 'pineapple', 'orange']
# 구분자 문자열과 문자열 리스트 연결하기
>>> s = ' '.join(['apple', 'pear', 'grape', 'pineapple', 'orange'])
>>> print(s)
apple pear grape pineapple orange
>>> s = '-'.join(['apple', 'pear', 'grape', 'pineapple', 'orange'])
>>> print(s)
apple-pear-grape-pineapple-orange
# 소문자 -> 대문자
>>> s = 'python'.upper()
>>> print(s)
PYTHON
>>> s = 'PYTHON'.lower()
>>> print(s)
python
# 왼쪽 공백 삭제
>>> s = ' Python '.lstrip()
>>> print(s)
'Python '
# 양쪽 공백 삭제
>>> s = ' Python '.strip()
>>> print(s)
'Python'
# 왼쪽의 특정 문자 삭제
>>> s = ',python.'.lstrip(',.')
>>> print(s)
'python.'
# 오른쪽의 특정 문자 삭제
>>> s = ', python'.rstrip(',.')
>>> print(s)
', python'
# 양쪽 특정 문자 삭제
>>> s = ', python.'.strip(',.')
>>> print(s)
' python'
# 구두점을 간단하게 삭제
import string
>>> s = ', python.'.strip(string.punctuation)
>>> print(s)
>>> print(string.punctuation)
' python'
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"
# 공백까지 삭제
>>> s = ', python.'.strip(string.punctuation + ' ')
>>> print(s)
'python'
# 왼쪽 정렬
>>> s = 'python'.ljust(10)
>>> print(s)
python
# 오른쪽 정렬
>>> s = 'python'.rjust(10)
>>> print(s)
python
# 가운데 정렬
>>> s = 'python'.center(10)
>>> print(s)
python
# 메서드 체이닝
>>> s = 'python'.rjust(10).upper()
>>> print(s)
PYTHON
# 문자열 왼쪽에 0 채우기
>>> s = '35'.zfill(4)
>>> print(s)
0035
>>> s = '3.5'.zfill(6)
>>> print(s)
0003.5
>>> s = 'hello'.zfill(10)
>>> print(s)
00000hello
# 왼쪽에서 문자열 위치 찾기
>>> s = 'apple pineapple'.find('pl')
>>> print(s)
2
# 문자열이 없으면 -1
>>> s = 'apple pineapple'.find('xy')
>>> print(s)
-1
# 오른쪽에서부터 문자열 위치 찾기
>>> s = 'apple pineapple'.rfind('pl')
>>> print(s)
12
>>> s = 'apple pineapple'.rfind('xy')
>>> print(s)
-1
# 문자열 위치 찾기 : 여러개일 경우 처음 찾은 문자열의 인덱스 반환
>>> s = 'apple pineapple'.index('pl')
>>> print(s)
2
# 오른쪽에서부터 문자열 위치 찾기
>>> s = 'apple pineapple'.rindex('pl')
>>> print(s)
12
24.2 문자열 서식 지정자와 포매팅 사용하기
# 서식 지정자로 문자열 넣기
s = 'I am %s' % 'james'
print(s)
name = 'maria'
s = 'I am %s' % name
print(s)
# 서식 지정자로 숫자 넣기
s = 'I am %d years old' % 20
print(s)
# 서식 지정자로 소수점 표현하기
# %f : 소수점 이하 6자리까지 표시
s = '%f' % 2.3
print(s)
# '%.자릿수f' % 숫자
s = '%.2f' % 2.3
print(s)
s = '%.3f' % 2.3
print(s)
# 서식 지정자로 문자열 정렬하기
s = '%10s' % 'python'
print(s)
# 자릿수가 다른 숫자 출력하기
# %길이d
s = '%10d' % 150
print(s)
# %길이.자릿수f
s = '%10.2f' % 2.3
print(s)
s = '%10.2f' % 2000.3
print(s)
# %-길이s
s = '%-10s' % 'python'
print(s)
print(line)
# 서식 지정자로 문자열 안에 값 여러개 넣기
s = 'Today is %d %s' % (3, 'April')
print(s)
s = 'Today is %d%s' % (3, 'April')
print(s)
# format 메서드 사용
s = 'Hello, {0}'.format('world')
print(s)
# format 메서드로 값 여러개 넣기
s = 'Hello, {0} {2} {1}'.format('Python', 'Script', 3.6)
print(s)
# formt 메서드로 같은 값 여러개 넣기
s = '{0} {0} {1} {1}'.format('Python', 'Script')
print(s)
# format 메서드에서 인덱스 생략
s = 'Hello, {} {} {}'.format('Python', 'Script', 3.6)
print(s)
# format 메서드에서 인덱스 대신 이름 지정
s = 'Hello, {language} {version}'.format(language='Python', version=3.6)
print(s)
# format 메서드로 문자열 정렬
s = '{0:<10}'.format('python')
print(s)
# {인덱스:>길이}.format(값)
s = '{0:>10}'.format('python')
print(s)
print(line)
# 숫자 개수 맞추기
# '%0개수d' % 숫자
# '{인덱스:0개수d}'.format(숫자)
s = '%03d' % 1
print(s)
s = '{0:08.2f}'.format(150.37)
print(s)
# 채우기와 정렬을 조합해서 사용
# '{인덱싀:[[채우기]정렬][길이][.자릿수][자료형]}'
s = '{0:0<10}'.format(15)
print(s)
s = '{0:0>10}'.format(15)
print(s)
s = '{0:0>10.2f}'.format(15)
print(s)
s = '{0: >10}'.format(15)
print(s)
s = '{0:x>10}'.format(15)
print(s)
# 금액, 천단위로 콤마 넣기
s = format(1493500, ',')
print(s)
s = '%20s' % format(1493500, ',')
print(s)
s = '{0:,}'.format(1493500)
print(s)
s = '{0:>20,}'.format(1493500)
print(s)
s = '{0:0>20,}'.format(1493500)
print(s)
==========================
I am james
I am maria
I am 20 years old
2.300000
2.30
2.300
python
150
2.30
2000.30
python
==========================
Today is 3 April
Today is 3April
Hello, world
Hello, Python 3.6 Script
Python Python Script Script
Hello, Python Script 3.6
Hello, Python 3.6
python
python
==========================
001
00150.37
1500000000
0000000015
0000015.00
15
xxxxxxxx15
1,493,500
1,493,500
1,493,500
1,493,500
000000000001,493,500
728x90
반응형
'Language > Python' 카테고리의 다른 글
[코딩도장]26.세트사용하기 (0) | 2022.03.21 |
---|---|
[코딩도장]25.딕셔너리응용 (0) | 2022.03.18 |
[코딩도장]23. 2차원 리스트 (0) | 2022.03.15 |
[코딩도장]22.리스트, 튜플 응용 (0) | 2022.03.14 |
[코딩도장]20.FizzBuzz문제 (0) | 2022.03.14 |