«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Recent Posts
Today
Total
관리 메뉴

짜리몽땅 매거진

[Python] 문자열 데이터 응용 본문

Data/Python

[Python] 문자열 데이터 응용

쿡국 2023. 7. 19. 17:52

문자열 데이터 응용하기

문자열 바꾸기
'kook,junho'.replace('kook','kuk') # '문자열'.replace('바꿀문자열','새문자열')
'kuk,junho'
'kook,junho'.replace(',','/') # 기호도 문자열이기 때문에 replace 사용 가능
'kook/junho'
'k o o k j u n h o'.split() 
# split 함수를 사용해 문자열을 분리할 수 있다.
# 기본적으로 공백을 기준으로 나눈다.
# split 함수는 문자열을 나눠서 출력할 때 리스트에 넣어준다.
['k', 'o', 'o', 'k', 'j', 'u', 'n', 'h', 'o']
'k/o/o/k/j/u/n/h/o'.split('/')
#이처럼 하나의 문자열에 나눈 기호와 split 괄호가 같아야 원하는대로 출력됨
['k', 'o', 'o', 'k', 'j', 'u', 'n', 'h', 'o']
x='k/o/o/k/j/u/n/h/o'.split('/')
'-'.join(x) #리스트로 출력하지 않고 하나의 문자열을 원하는 기호로 연결하고 싶을 때
# '구분자'.join(리스트)
'k-o-o-k-j-u-n-h-o'
'kookjunho'.upper() # 소문자->대문자
'KOOKJUNHO'
'KOOKJUNHO'.lower() # 대문자->소문자
'kookjunho'
'KookJUnho'.lower() # 이렇게 소문자, 대문자 섞여있어도 가능
'kookjunho'
'   kookjunho       '.strip() #strip() 함수를 통해 전체 공백 제거 가능
'kookjunho'
'   kookjunho       '.strip(20) #숫자가 들어갈 순 없다.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_2376\384062679.py in <module>
----> 1 '   kookjunho       '.strip(20)

TypeError: strip arg must be None or str

'   kookjunho       '.lstrip() #lstrip()를 통해 왼쪽 공백만 제거 가능
'kookjunho       '
'   kookjunho       '.rstrip() #rstrip()를 통해 오른쪽 공백만 제거 가능
'   kookjunho'
'    ,     ,kookjunho      '.strip(',') #특정 기호만 삭제도 가능
#strip괄호 안에는 공백과 문자열만 들어갈 수 있다.
#근데 이건 왜 삭제가 안될까...
#아! 양쪽 끝에 있을 경우에만 제거가 된다~
'    ,     ,kookjunho      '
',,      kookjunho'.strip(',')
'      kookjunho'
'kookjunho'.strip('o') #왜 o가 전부 삭제가 안되지...?
#이것도 중간에 있는 oo는 양쪽 끝에 위치하지 않기 때문에
'kookjunh'
특수문자 지우는 모듈
import string
string.punctuation #string = 문장부호로 사용되는 모든 문자가 대부분 포함
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
',,,kookjunho+++'.strip(string.punctuation)
'kookjunho'
'kookjunho'.center(30)#가운데정렬 #center(양쪽 공백 값)
'          kookjunho           '
'kookjunho'.ljust(30)#왼쪽 정렬
'kookjunho                     '
'kookjunho'.rjust(30) #오른쪽 정렬
'                     kookjunho'
'kookjunho'.ljust(30).upper()
#파이썬은 이처럼 여러 문법을 확장해 연속적으로 사용할 수 있다.
#메서드체이닝:메서드 체이닝은 코드를 간결하고 가독성이 좋게 만들어줄 수 있으며, 연속적인 작업을 한 줄에 표현하여 코드의 흐름을 이해하기 쉽게 만들어줍니다. 하지만 지나치게 긴 메서드 체인은 가독성을 해칠 수 있으므로 적절하게 사용해야 합니다.
'KOOKJUNHO                     '
'kookjunho'.find('k') #특정문자열을 찾아 인덱스를 반환, 없으면 -1 반환
0
'kookjunho'.find('o') #특정문자열이 여러개일 경우 첫번째 위치한 인덱스 반환
1
'kookjunho'.count('o') #특정문자열 개수 세기
3
문자열 서식 지정자
'준호는 %s를 좋아한다.' % '축구'
'준호는 축구를 좋아한다.'
a='축구'
'준호는 %s를 좋아한다.' % a #'%s' % '문자열' 형식
'준호는 축구를 좋아한다.'
'준호는 주노보다 축구를 %d배 더 좋아한다.' % 3 # %d를 이용해 숫자도 지정 가능
'준호는 주노보다 축구를 3배 더 좋아한다.'
'준호는 주노보다 축구를 %f배 더 좋아한다.' %3.14 # %f를 이용해 소수도 지정 가능
'준호는 주노보다 축구를 3.140000배 더 좋아한다.'
'준호는 주노보다 축구를 %.2f배 더 좋아한다.' %3.14 # %.자릿수f를 이용해 원하는 자릿수만큼만 소수 지정 가능
'준호는 주노보다 축구를 3.14배 더 좋아한다.'
'준호는 %s보다 축구를 %d배 더 좋아한다'%('주노',3) #여러개 응용 가능
'준호는 주노보다 축구를 3배 더 좋아한다'
#format형식으로 굳이 %d,%s 쓰지 않고 인덱스 형식으로도 지정 가능
'준호는 {0}보다 {1}를 {2}배 더 좋아한다'.format ('주노','축구',3)
#중괄호 사용, format뒤에는 소괄호 사용
'준호는 주노보다 축구를 3배 더 좋아한다'
#인덱스 대신 변수화해서 이름 지정 가능
'준호는 {a}보다 {b}를 {c}배 더 좋아한다'.format (a='주노',b='축구',c=3)
'준호는 주노보다 축구를 3배 더 좋아한다'
딕셔너리 응용하기
키와 벨류로 이뤄진 주머니
key, value
setdefault- 키-값 쌍 추가
update - 키의 값을 수정할 수 있따, 키가 없으면 키-값 쌍 추가한다.
a={'이름':'국준호','소속':'브다','기수':'7기'}
a
{'이름': '국준호', '소속': '브다', '기수': '7기'}
a.setdefault('나이') #setdefault를 통해 키 추가
a
{'이름': '국준호', '소속': '브다', '기수': '7기', '나이': None}
a.update(나이=23) #update를 통해 값까지 추가, 이때 키에 ''표시하면 에러남.
a
{'이름': '국준호', '소속': '브다', '기수': '7기', '나이': 23}
a.setdefault('성별','남')#setdefault(키,값)을 입력할 경우 딕셔너리에 키와 값 모두 추가
'남'
a
{'이름': '국준호', '소속': '브다', '기수': '7기', '나이': 23, '성별': '남'}
a.pop('이름')#지난번 배운 pop을 사용해 딕셔너리의 키-값 삭제 가능
'국준호'
a
{'소속': '브다', '기수': '7기', '나이': 23, '성별': '남'}
del a['소속'] #del 변수['키']를 통해서도 키-값 삭제 가능
a
{'기수': '7기', '나이': 23, '성별': '남'}
a.get('기수') #get을 통해 해당 키의 값을 불러올 수 있다.
'7기'
items - 키와 값 쌍을 모두 가지고 온다.

keys -키를 모두 가지고 온다.

values - 값을 모두 가지고 온다.

a.items()
dict_items([('기수', '7기'), ('나이', 23), ('성별', '남')])
a.keys()
dict_keys(['기수', '나이', '성별'])
a.values()
dict_values(['7기', 23, '남'])
x=list(a.items()) #리스트화 가능
x
[('기수', '7기'), ('나이', 23), ('성별', '남')]
y=list(a.values())
y
['7기', 23, '남']