본문 바로가기
파이썬/Basics(기초)

[Python] 2. 파이썬 문자열 연산, 인덱싱, 슬라이싱

by 쿠킷리스트 2021. 9. 22.

학습내용

문자열 연산

  • 문자열 더하기를 통해 연결하기(Concatenation)
  • 문자열 연산은 문자가 저장될 수 있는 공간을 새로 만들어서 저장하기에 반복적인 문자열 연산은 부하를 일으킬 수 있다.
a = "Big"
b = "Data"
a + b
#Big Data

a = "Big"
a * 3
#BigBigBig

a = "-"
a * 30
#------------------------------
  • len( ) 함수 : 문자열 길이 계산
    • len함수의 경우 이스케이프 코드도 계산하기에 이를 고려하여 사용해야한다.
a = "Hello"
b = len(a)
print(b)
#5

c ="He\nllo"
d = len(c)
print(d)
#6

문자열 인덱싱(Indexing)

 인덱싱은 무언가를 가리킨다는 의미로 문자열에 번호를 매겨 특정 위치, 순서의 문자를 찾을 수 있도록 하는 것. 파이썬에서는 0부터 카운트를 시작한다. 3번째 위치는 인덱싱 숫자로 2다.

a = "Arts with Tech, Big Data Koo"

Arts with Tech, Big Data Koo
0         1         2
0123456789012345678901234567

a[11]
#e
a[-1]
#o
  • Art with Tech, Big Data Koo의 번호를 매기면 위와 같다.
  • '변수[번호]'는 문자열 내의 특정한 위치의 값을 뽑아낼 수 있다.
  • a[11]은 변수 a의 11번째 문자를 가지고 와라. -> 11번째 문자인 e.
  • 문자열을 뒤에서부터 읽고싶다면 ( - )를 활용하면 된다.
a = "Arts with Tech, Big Data Koo"
b = a[25] + a[26] + a[27]
print(b)
#Koo
  • 위와 같이 인덱싱을 활용하여 연산도 가능하다.

문자열 슬라이싱(Slicing)

문자열 슬라이싱은 문자열 내에서 특정 범위의 문자를 뽑아낼 수 있도록 하는 것.

 

a = "Arts with Tech, Big Data Koo"
a[25:28] # 25<= a < 28
#Koo
  • a[25:28]은 문자열 a의 25번 문자부터 28번까지의 문자를 뽑아낸다는 뜻.(25번부터 28번보다 작을 때까지의 수)
a = "Arts with Tech, Big Data Koo"
a[19:]
#Big Data Koo
a[:13]
#Arts with Tech
a[:]
#Arts with Tech, Big Data Koo
a[20:-4]
#Data
  • 끝 번호 부분을 생략하면 시작 번호부터 문자열의 끝까지를 뽑아낸다.
  • 시작 번호 부분을 생략하면 처음부터 끝 번호까지 뽑아낸다.
  • [ : ]를 사용하면 문자열의 처음부터 끝까지를 뽑아낸다.
  • 마이너스(-) 기호도 사용이 가능하다.

슬라이싱으로 문자열 나누기

record = "20210921Rainy"
date = record[:8]
weather = record[8:]

date
#20201213
weather
#Rainy
  • 'YYYYMMDD날씨' 순으로 기록이 되어 있을 때.
  • 날짜는 0~7번까지, 날씨는 8번부터 끝까지로 설정하면 원하는 데이터를 뽑아낼 수 있음.

파이썬 슬라이싱 예제

1. '123456'이라는 문자열을 슬라이싱을 활용해 '234561'로 변경해보기.

a = '123456'
b = a[1:] + a[0]
print(b)
#234561

2. 주민등록번호(730922-1083234)에서 생년월일을 출력하는 프로그램 만들기.

a = '730922-1083234'
year = a[0:2]
month = a[2:4]
day = a[4:6]

#1
"{0}년 {1}월 {2}일".format(year, month, day)
#2
f"{year}년 {month}월 {day}일"

#'73년 09월 22일'

댓글