Python/파이썬 문법

[파이썬 문법] 문자열 보충(슬라이싱, 문자열 함수)

서노리 2022. 1. 6. 23:00
반응형

문자열 연산(더하기, 곱하기)

'+'를 통해 문자열끼리 연결할 수 있으며 '문자열 * 정수'를 통해 해당 문자열을 반복할 수 있다.

이는 [파이썬 문법] 그 외 다양한 자료형(문자열, 튜플, 사전, 집합)에서 다루었다.

 

문자열 슬라이싱

문자열도 리스트와 같이 인덱싱과 슬라이싱을 할 수 있다. 

a[start:end:step]
  • start: 슬라이싱을 시작할 인덱스
  • end: 슬라이싱을 끝낼 인덱스(end 포함 x)
  • step: 몇 개씩 끊어서 가져올지와 슬라이싱 방향을 결정
  • start, end, step 모두 양수와 음수를 가질 수 있다.

 

※ start 속성 활용

a = ['a', 'b', 'c', 'd', 'e']
print(a[1:]) # 1번 인덱스부터 끝까지
print(a[-3:]) # -3번 인덱스부터 끝까지

 

※ end 속성 활용

a = ['a', 'b', 'c', 'd', 'e']
print(a[:3]) # 처음부터 3번 인덱스 전까지
print(a[:-1]) # 처음부터 마지막 전까지

 

※ start, end 속성 활용

a = ['a', 'b', 'c', 'd', 'e']
print(a[1:3]) # 1번 인덱스부터 3번 인덱스 전까지
print(a[-2:-1]) # -2번 인덱스부터 -1번 인덱스 전까지

 

※ step 속성 활용

a = ['a', 'b', 'c', 'd', 'e']
print(a[::2]) # 처음부터 2칸씩 이동하면서
print(a[::-1]) # 전체를 거꾸로 출력
print(a[3:0:-1]) # 1번 인덱스부터 3번 인덱스까지 거꾸로 출력

 

※ 슬라이싱 활용

1. 문자열 나누기

data = '20010329Sunny'
date = data[:8]
weather = data[8:]

2. 문자열 일부 바꾸기

문자열의 요솟값은 바꿀 수 없기 때문에 슬라이싱이 필요하다. (즉,  data[1] = 'y' 이런 연산은 불가능하다)

data = 'pithon' # python으로 변경해야함 
a[:1] + 'y' + a[2:]

 

문자열 관련 함수

  • len(문자열) -  문자열 길이를 알려준다.
  • 문자열.count(문자) - 문자열에서 해당 문자의 개수를 알려준다.
  • 문자열.find(문자) - 문자열에서 해당 문자가 처음 나온 인덱스를 반환한다.(없을 시 -1 반환)
  • 문자열.index(문자) - 문자열에서 해당 문자가 처음 나온 인덱스를 반환한다. (없을 시 오류)
  • 문자열1.join(문자열2) - 문자열2의 각각의 문자 사이에 문자열1을 삽입한다. (문자열2 자리에는 리스트나 튜플이 올 수 있다)
    # 대표적인 join 사용 예 - 리스트를 문자열로 변환
    
    data = ['H','E','L', 'L', 'O']
    print("".join(data))

 

  • 문자열.upper() - 소문자를 대문자로 바꿔준다.
  • 문자열.lower() - 대문자를 소문자로 바꿔준다.
  • 문자열.lstrip() - 문자열의 가장 왼쪽에 있는 연속된 공백들을 모두 지운다.
  • 문자열.rstrip() - 문자열의 가장 오른쪽에 있는 연속된 공백들을 모두 지운다.
  • 문자열.strip() - 문자열의 양쪽에 있는 연속된 공백들을 모두 지운다. 
  • 문자열.replace(바뀌게 될 문자열, 바꿀 문자열) - 문자열 안의 특정한 값을 다른 값으로 치환한다.
  • 문자열.split() - 문자열을 입력 값 기준으로 나누어 리스트에 넣어준다. (아무것도 입력하지 않을 시 공백 기준)
    a = "Life is too short"
    >>> a.split()
    ['Life', 'is', 'too', 'short']
    >>> b = "a:b:c:d"
    >>> b.split(':')
    ['a', 'b', 'c', 'd']

참고자료 - https://wikidocs.net/13#_10

반응형