문자열 인덱싱, 슬라이스, 내장함수


1. 문자열 인덱싱 또는 추출

   문자열에서 한문자를 얻기 위해서 문자열 이름뒤에 대괄호([ ])로, 

   배열같이 offset을 지정합니다.

   첫번째는 [0] 이며, 마지막은 [-1]이며, [-2], [-3] 순서로 진행됩니다.

 

>>> alphaletters = 'abcdefghijklmnopqrstuvwxyz'
>>> alphaletters[0]
'a'
>>> alphaletters[1]
'b'
>>> alphaletters[-1]
'z'
>>> alphaletters[-2]
'y'

   

   기본적으로 문자열도 immutable 변수 이기 때문에, index로 변경이

   변경이 불가능합니다.

>>> Test = 'abcde'
>>> Test[0] = 'A'  // Error 발생

   대신 나중에 설명할 내부함수 replace를 통해 변경할 수 있습니다.



2. 문자열 슬라이스

  문자열 슬라이스는 [start:end:step] 으로 표현할 수 있습니다.

  [:] : 처음부터 끝까지 전체 문자열을 추출합니다.

  [start:] : start 부터 끝까지 추출합니다.

  [:end] : 처음부터 end-1까지 추출합니다.

  [start:end] : start부터 end-1까지 추출합니다.

  [start:end:step] : step만끔 점프하면서 start에서 end-1까지 추출합니다.


>>> alphabet = 'abcdefghijklmnopqrstuvwxyz'
>>> alphabet[:]
'abcdefghijklmnopqrstuvwxyz'

>>> alphabet[20:]
'uvwxyz'

>>> alphabet[:10]
'abcdefghij'

>>> alphabet[12:15]
'mno'

>>> alphabet[-4:]
'wxyz'

>>> alphabet[18:-3]
'stuvw'

>>> alphabet[::7]
'ahov'

>>> alphabet[4:20:3]
'ehknqt'

>>> alphabet[19::4]
'tx'

>>> alphabet[:21:5]
'afkpu'

>>> alphabet[::-1]
'zyxwvutsrqponmlkjihgfedcba'



3. 문자열 내장함수

  (1) 문자열 길이 및 문자개수 세기 - len / count

       len 은 전체 문자열 길이, count는 문자열 중에 특정문자 갯수

>>> s = "abcefg"
>>> len(s) // 전체 문자열 길이
7
>>> s.count('a') // 문자열 중 'a'의 갯수
1


  (2) 문자열 나누기 - split

      split은 나누며, 나중에 정리할 리스트자료형으로 반환합니다.

>>> str = "test1, test2, test3, test4"
>>> str.split(',')
['test1', ' test2', ' test3', ' test4']


  (3) 위치 알려주기 - find / index 

      find/index 모두 위치를 반환하지만, index는 없으면 error 발생

>>> str = "Python is fun for me."
>>> str.find('i')
7
>>> str.index('i') // 찾는 문자열 존재안하면 error 발생함
7


  (4) 문자열 결합하기 - join

      join은 split과 반대의 역할을 한다. string.join(list)형태로 결합한다.

>>> list = ['test','test1','test2','test3']
>>> ",".join(list)
'test,test1,test2,test3'


  (5) 문자열 다루기 

    여러가지 문자열 함수의 예제를 들면서 보겠습니다.

>>> python_define = 'Python is a widely used high-level, general-purpose, 
interpreted, dynamic programming language.'

>>> len(python_define)
95

>>> python_define.startswith('Python')
True

>>> python_define.endswith('language.')
True

>>> python_define.find('level')
29

>>> python_define.count('level')
1

>>> python_define.isalnum()
False


  (6) 대소문자

      이번에는 대소문자를 바꾸는 방법을 한번 보겠습니다.


>>> python_define = 'Python is a widely used high-level, general-purpose, 
interpreted, dynamic programming language.'

#첫번째 단어 대문자
>>> python_define.capitalize()
'Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.'

#모든 단어의 첫글자 대문자
>>> python_define.title()
'Python Is A Widely Used High-Level, General-Purpose, Interpreted, Dynamic Programming Language.'

#글자를 모두 대문자
>>> python_define.upper()
'PYTHON IS A WIDELY USED HIGH-LEVEL, GENERAL-PURPOSE, INTERPRETED, DYNAMIC PROGRAMMING LANGUAGE.'

#글자를 모두 소문자
>>> python_define.lower()
'python is a widely used high-level, general-purpose, interpreted, dynamic programming language.'

#대문자는 소문자, 소문자는 대문자,
>>> python_define.swapcase()
'pYTHON IS A WIDELY USED HIGH-LEVEL, GENERAL-PURPOSE, INTERPRETED, DYNAMIC PROGRAMMING LANGUAGE.'


  (7) 대체하기 - replace()

      문자열에서 특정 문제를 특정 문자로 바꾸는 예제를 보겠습니다.


# 문자열에서 ,를 and로 모두 바꾸는 경우
>>> python_define.replace(',', ' and')
'Python is a widely used high-level and general-purpose and interpreted and dynamic programming language.'
# 문자열에서 ,를 and로 2번만 바꾸는 경우
>>> python_define.replace(',', ' and',2)
'Python is a widely used high-level and general-purpose and interpreted, dynamic programming language.'


'프로그래밍 > Python' 카테고리의 다른 글

[Python] 자료형 (문자열)  (0) 2016.04.25
[Python] 기본자료형 (숫자형)  (0) 2016.04.20
[Python] Linux(우분투) Python 설치  (0) 2016.04.19
[Python] 기본 자료형이란?  (0) 2016.04.13
[Python] Python 철학  (0) 2016.04.13

+ Recent posts