IT 세계의 후아

[python]문자열 인덱싱 본문

Coding/Python

[python]문자열 인덱싱

후__아 2024. 4. 17. 20:59

※ 콜론[:]을 활용한 문자열 인덱싱

text = 'abcdef'

text[0] = 'a'

text[0:2] = 'ab'

text[-2:0] = 'ef'

text[:-3] = 'abc'

text[::2] = 'ace'  # 0번째 문자부터 끝까지 2개씩 건너뛰기

# 프로그래머스 lv0 코드 처리하기
def solution(code):
    mode = False    # 0
    ret = ""
    for i in range(len(code)):
        if code[i] == "1":  # 숫자 1이 아닌 문자열 1이라는 것 놓치지 않기!
            mode = not mode
        elif (mode == False and i%2 == 0) or (mode == True and i%2 == 1):
            ret += code[i]
        else: continue
    return "EMPTY" if len(ret) == 0 else ret
    
    # 다른 사람 풀이
    # return "".join(code.split("1"))[::2] or "EMPTY"
# 프로그래머스 lv0 세로 읽기
# 내 풀이...진짜 뭐했냐ㅎ
def solution(my_str, m, c):
    return ''.join([my_str[i*m+c-1] if m!= 1 else my_str[i*m] for i in range(len(my_str)//m)])

# 다른 사람 풀이-인덱싱 활용
def solution(s, m, c):
    return s[c-1::m]

 

※ [-1]과 [-1:]은 다르다

빈 리스트에서 [-1]은 IndexError가 뜨지만 [-1:]은 가능함

 

※ 붙어있는 문자열 한글자씩 띄우기

엉뚱한 방법으로 헤매다가..찾은 어이없는..쉬운 방법...

리스트로 변환시키기ㅎ (참고 https://ghdwn0217.tistory.com/58)

# 프로그래머스 lv0 9로 나눈 나머지
# number "78720646226947352489" -> 2
def solution(number):
    return sum(map(int, list(number))) % 9
    # sum(map(int, number)) 해도 똑같음! => map(func, iterable) => 문자열도 iterable이므로!

 

# 문자열은 슬라이싱(인덱스)으로 추출, 접근은 가능하지만 수정은 불가능!!!

ㄴcf) reverse vs reversed https://hoooa.tistory.com/21