ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 문자열(String) - (1) 문자열 인덱스/문자열 조작함수
    Programming/Python 2020. 5. 18. 20:55

    문자열이란? 

    여러개의 char가 결합된 형태를 말한다.

    자바와 달리 문자(char)와 문자열(string)을 구분하지 않는다.

     

    1) 문자열 인덱스

    특징

    • 문자열은 문자의 배열과 동일하다.

    • 즉, 배열의 인덱스로 요소 추출 가능 (정방향 인덱스, 역방향 인덱스 존재)

    • 범위를 지정하여 문자열의 일부 요소를 추출할 수도 있다.

    예제 설명

      • 인덱스를 사용하여, 문자열 요소에 접근

      • 범위를 지정하여, 문자열의 일부 요소들에 접근

    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
    #1번 문자열 인덱싱(요소접근 방법)
    #예제1
    str = 'Hello Python'
    print('str:',str)
     
    #문자'e'출력
    print('str[1]:'str[1]) #정방향 인덱스 사용
    print('str[-11]:'str[-11]) #역방향 인덱스 사용
     
    #문자'P'출력
    print('str[6]:'str[6]) #정방향 인덱스 사용
    print('str[-6]:'str[-6]) #역방향 인덱스 사용
     
    #예제2
    str = 'Hello Python'
    print('str:',str)
     
    #'Hello'만 범위로 지정
    print('str[0:5]:',str[0:5])
    print('str[-12:-7]:',str[-12:-7])
    print('str[:5]:',str[:5]) #시작 위치 생략 가능
     
    #'Python'만 범위로 지정
    print('str[6:12]:',str[6:12])
    print('str[-6:-12]:',str[-6:-12])
    print('str[6:]:',str[6:]) #끝 위치 생략 가능
    cs

     

    2) 문자열 조작함수 - replace(), split(), splitline(), join()

    1. replace(old, new[,cnt]) : 문자열의 old부분을 new로 교체

    특징

    • cnt는 교체 횟수

    • cnt를 지정하지 않으면 모든 old값이 new로 교체된다

    예제

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #문자열 조작 함수
    #1. replace(old, new[,cnt]) 예제
     
    s1 = 'abcdefg'
     
    print(s1.replace('bc','123')) #원본 문자열에서 bc부분을 123으로 교체
    #결과: a123defg
     
    print(s1) #실행 후에도 원본 문자열은 바뀌지 않는다.
    #결과: abcdefg
     
    s2='one str two str three str'
     
    print(s2.replace('str','box',2))#원본 문자열에서 'str' 2개만 'box'로 변경
    #결과:one box two box three str
     
    print(s2.replace('str','box'))#원본 문자열에서 'str' 모두를 'box'로 변경
    #결과:one box two box three box
     
    print(s2)#실행 후에도 원본 문자열은 불변
    #결과: one str two str three str
     
    cs
     

    2. split([delim[,max]) :  문자열을 delim(구분자)를 기준으로 분할하여, 문자열 리스트를 반환

    특징

    • delim을 생략하면 스페이스가 default값으로 사용된다.

    • max는 분할 개수를 뜻한다.

    예제

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #문자열 조작 함수
    #2.split([delim[,max]) 예제
     
    s2='one two three four five' 
     
    print(s2.split())#구분자를 지정하지 않으면 공백이 기본 구분자가 된다
    #결과:['one', 'two', 'three', 'four', 'five']
     
    s2='one,two,three,four,five'
     
    print(s2.split(','))#구분자를 ','로 지정
    #결과:['one', 'two', 'three', 'four', 'five']
     
    print(s2.split(',',2))#구분자 분할 개수를 2개로 지정
    #결과:['one', 'two', 'three,four,five']
    cs
     

    3. splitline(num):  문자열을 '\n'기준으로 분할. '\n'을 제거한 리스트를 반환

    특징

    • num이 양수면, '\n' 제거 안함

    예제

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #문자열 조작 함수
    #3. splitline(num) 예제
     
    s1='one line\ntwo line\nthree line'
     
    print(s1.splitlines())#\n을 구분자로 문자열 분할. 분할된 문자열의 \n은 제거해서 반환
    #결과:['one line', 'two line', 'three line']
     
    print(s1.splitlines(3))#파라메터 값이 양수면 '\n'제거 하지 않고 반환한다.
    #결과:['one line\n', 'two line\n', 'three line']
     
    s2='one line\n\ntwo line\n\nthree line'
     
    print(s2.splitlines())
    #결과:['one line', '', 'two line', '', 'three line']
     
    print(s2.splitlines(1))#파라메터 값이 양수일 경우, 숫자 크기와 상관없이 결과는 동일
    #결과:['one line\n', '\n', 'two line\n', '\n', 'three line']
    print(s2.splitlines(2))
    #결과:['one line\n', '\n', 'two line\n', '\n', 'three line']
    cs

     

    4. join(str):  문자열들을 하나의 문자열로 결합. 각 문자열 사이 구분자 추가 가능

    예제

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #문자열 조작 함수
    #4.join(str) 예제
     
    delim = '/' #구분자
     
    s1=('aaa','bbb','ccc'#문자열 튜플: 불변
    s2=['aaa','bbb','ccc'#문자열 리스트: 가변
     
    #튜플의 요소를 모두 연결하여 하나의 문자열 반환. delim을 구분자로 사용
    print(delim.join(s1)) 
    #결과:aaa/bbb/ccc
     
    #리스트의 요소를 모두 연결하여 하나의 문자열 반환. delim을 구분자로 사용
    print(delim.join(s2)) 
    #결과:aaa/bbb/ccc
    cs

     

    댓글

Designed by black7375.