ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • python string 다루기
    개발하면서/코드보면서 2011. 10. 13. 08:07
    반응형

    PS를 하다보면 string을 자유롭게 다뤄야하는데 내가 직접 짜고 다른 사람이 짠 해답을 보면
    built-in method로 깔끔하게 구현한게 있을때 현타가 온다.
    python string의 built-in method와 slices를 알아보고 대강 어떤게 있는지 살펴보기로 한다.

    built-in Method

    str.isXXX
    알파벳, 숫자, 알파벳+숫자, 아스키 코드, 대/소문자 여부를 판단할때 사용한다.

    str.center(width, [fillchar]), str.ljust(width, [fillchar]), str.rjust(width, [fillchar])
    문자열 가운데 정렬/왼족 정렬/오른쪽 정렬

     

    str.count(sub[, start[, end]])
    문자열 안에 sub이 발생하는 횟수

     

    str.capitalize, str.upper, str.lower
    문자열 맨 앞에 한 글자만 대문자, 그 이후 소문자로 변환 그리고 대문자/소문자로 변환

     

    str.find(sub[, start[, end]]),  sub in str, str.index(sub[, start[, end]])
    문자열에서 특정 문자열을 찾을때 사용
    find는 가장 먼저 찾게 된 index를 리턴, in은 True/Flase 리턴, index는 find와 동일하지만 없을 경우 ValueError 발생

     

    str.format
    문자열 포맷팅을 맞춰 준다.
    이진수, 십진수, 정렬, 특정 문자열로 채워주기등 다양한게 가능하니 꼭 아래 url을 참고하여 어떤게 있는지 살펴보자.
    https://docs.python.org/3/library/string.html#formatstrings


    str.replace(old, new[, count]), str.replace(old, new[, count])
    문자열에 있는 old를 new로 변환한다.

     

    str.strip str.lstrip, str.rstrip
    공백제거에 사용. 양쪽/왼쪽/오른쪽

     

    str.join(iterable)
    str을 구분자로 문자열로 이루어진 iterable을 이어 붙인다.
    iterable에서 문자열이 아닌(byte포함)게 발견되면 TypeError 발생

     

    str.paratition(sep), str.rpartition(sep)
    가장 처음 만나는 sep 기준으로 [왼쪽, sep, 오른쪽] 으로 나누어 리스트 문자열을 만들어준다.

     

    str.strip([char]), str.rstrip([char])
    char 기준으로 나눈다. partition과 다르게 char은 리스트에 포함되지 않는다.
    parameter를 생략하면 값이 str 한개인 리스트가 나오는데 차라리 [str]로 하는게 더 자연스러운듯

     

    str.zfill(width)
    문자열을 width만큼 0으로 채워준다. 문자열 맨 앞에 +/- 가 있으면 부호 뒤부터 0으로 채운다.
    +/-부호도 width에 포함됨

    Slices

    문자열을 본인이 원하는 크기로 쉽게 만들수도 있다.

    str[[start]:[stop]:[step]]

     

     

    위 사진에서 파랑색으로 보이는 첫 줄과 두번째 줄은 해당 문자열의 index 번호이다.

    str[0] 혹은 str[-10]은 앞에 있는 'H'를 의미한다.

     

    start, stop까지 넣어주면 구간으로 자를수 있다. (stop은 not include) str[2:5] 혹은 str[-8:-5]는 'llo'를 의미한다.

     

    step은 slices에 세번째 parameter인데 양수면 왼쪽에서 오른쪽 방향으로, 음수면 오른쪽에서 왼쪽으로 읽게 된다.

    문자열을 거꾸로 하려면 str[::-1]로 해주면 된다. 두칸씩 읽고(?) 싶다면 str[::2] -> 'Hlool'

    헷갈리는 부분이 start, stop에 값이 있는 경우 였다.

    위 문자에서 World를 reverse를 하고 싶어서 str[5::-1]로 해봤는데 결과는 'WolleH'

    그렇다. start ~ stop을 자른 뒤 역으로 만드는게 아니라 start 에서 왼쪽으로 읽으며 stop까지 가는거였다.

    World를 reverse를 하고 싶다면 str[-1:4:-1]  -1부터 왼쪽으로 읽으면서 4전까지 읽는다는 의미다.

     

    문자열 PS야 기다려라!!! ㅋㅋ

    반응형

    댓글

Designed by Tistory.