IT 세계의 후아
[python]문자열 reverse, reversed 본문
※ 리스트.reverse()
해당 리스트 역순으로 수정해줄 뿐 None return => list에서만 제공되는 함수!!!
a_li = ['a', 'b', 'c', 'd']
b_li = a_li.reverse()
print(b_li) # none
print(a_li) # ['d', 'c', 'b', 'a']
※ reversed(리스트/튜플/문자열)
역순으로 된 reversed 객체 return!
list(reversed(a_li)) # ['d', 'c', 'b', 'a']
or ''.join(reversed(a_li)) # 'dcba' 처럼 활용가능!
https://itholic.github.io/python-reverse-reversed/
※ 문자열 뒤집기(역순 출력)
문자열은 슬라이싱(인덱스)으로 추출, 접근은 가능하지만 수정은 불가능!!!
a_li[::-1] # ['d', 'c', 'b', 'a']
a_li[1:3][::-1] # ['c', 'b'] # 중간 추출한 리스트 역순!
https://blockdmask.tistory.com/581
# 프로그래머스 문자열 여러 번 뒤집기
# my_string "rermgorpsam" -> queries[[2, 3], [0, 7], [5, 9], [6, 10]] 인덱스 부분 뒤집기
def solution(my_string, queries):
# 1) str[::-1] 활용하려가다가 망함ㅎ
# +인덱싱 엉뚱하게 함;
for s, e in queries:
my_string = my_string[:s] + my_string[e:s:-1] + my_string[e+1:]
# my_string = my_string[:s] + my_string[s:e+1][::-1] + my_string[e+1:] # 옳은 방법
return my_string
# 2) string.replace() 쓰려다가 망함ㅎ => 테스트 케이스 시간초과
for s, e in queries:
my_string = my_string.replace(my_string[s:e+1], ''.join(reversed(list(my_string[s:e+1]))))
return my_string
# 3) 리스트로 변환 후 reverse!
str = list(my_string)
for s, e in queries:
str[s:e+1] = reversed(list(str[s:e+1]))
return ''.join(str)
# 프로그래머스 문자열 뒤집기
def solution(my_str, s, e):
return my_str[:s] + my_str[s:e+1][::-1] + my_str[e+1:]
'Coding > Python' 카테고리의 다른 글
[python]문자열 find, startswith, endswith (0) | 2024.04.21 |
---|---|
[python]리스트 sort(key, reverse), sorted() (0) | 2024.04.21 |
[python]반복문 (0) | 2024.04.19 |
[python]리스트 순열, 조합 (1) | 2024.04.18 |
[python]zip 활용 - dict, 리스트, 문자열, 반복문 (0) | 2024.04.17 |