티스토리 뷰
파이썬으로 문자열을 거꾸로 출력하는 방법은 다양하다.
각 경우마다 출력 형태나 조건이 다르기 때문에 헷갈릴 수 있으니 잘 알아두자.
word = "racecar"
#=> True
# for문 활용
- 인덱싱과 temp 변수를 활용한다.
- join 메서드를 활용한다.
def is_palindrome(word):
words = list(word)
for left in range(len(words) // 2): # 문자열의 절반 인덱스까지 반복
right = len(words) - left - 1 # 왼쪽 및 오른쪽 인덱스(대칭) 설정
temp = words[left]
words[left] = words[right]
words[right] = temp
words = ''.join(word)
if words == word: return True
return False
print(is_palindrome("racecar"))
# for문 활용2
- tuple을 활용하여 pythonic하게 푼다.
def is_palindrome2(word):
words = list(word)
for left in range(len(words) // 2):
right = len(words) - left - 1
# tuple 활용
# = 의 오른쪽 튜플이 위치 바뀌기 전의 값을 보관하고
# 그 값을 = 왼쪽에 각각 할당한다.
words[left], words[right] = words[right], words[left]
words = ''.join(word)
if words == word: return True
return False
print(is_palindrome2("racecar"))
# for문 활용3
- range 역순출력을 활용한다.
def is_palindrome(word):
words = list(word)
pals = []
for i in range(len(words) - 1, -1, -1):
pals.append(words[i])
if words == pals: return True
return False
# 리스트 슬라이싱 활용
- 인덱스 역순출력[::-1] 을 활용한다.
def is_palindrome(word):
words = list(word) # ['r', 'a', 'c', 'e', 'c', 'a', 'r']
pals = words[::-1] # ['r', 'a', 'c', 'e', 'c', 'a', 'r']
if words == pals: return True
return False
# reverse 함수 활용
- 변수에 할당하지 않는다. (반환값이 없다.) 이 점에 주의하자.
- join 을 통해 하나의 문자열로 합쳐준다.
def is_palindrome(word):
words = list(word)
words.reverse() # 변수할당x
pal_words = ''.join(words) # 문자열 리스트를 문자로 join
if word == pal_words: return True
return False
# reversed 메서드 활용
- reverse는 list에만 활용 가능하나 reversed는 문자열에도 바로 적용이 가능하다는 장점이 있다.
- 문자열에 적용하면 그 자체로는 object가 반환되기 때문에 list로 만들어주어야 한다.
- 또는 바로 Join으로 오브젝트를 연결하면 문자열이 잘 반환된다.
def is_palindrome(word):
pal_word = reversed(word) # <reversed object at 0x7fc6aee92e50>
print(list(pal_word)) # ['r', 'a', 'c', 'e', 'c', 'a', 'r']
print(''.join(reversed(word))) # racecar
if word == ''.join(reversed(word)): return True
return False
'Python' 카테고리의 다른 글
random 모듈 총정리 (0) | 2021.12.10 |
---|---|
list method 총정리 (0) | 2021.12.10 |
파이썬 소수점 이하 자리수 0으로 맞추기 (0) | 2021.12.06 |
slicing, startswith (0) | 2021.12.06 |
딕셔너리 sum, ternary expression, list comprehension, zfill (0) | 2021.11.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코딩도서
- 깃허브계정
- 개발언어순위
- 개발자도서추천
- ssafy결과
- 개발자책추천
- 폰트추천
- ssafy6기
- 맥과윈도우로깃허브
- intj여자
- 무료폰트추천
- 개발언어추천
- 폰트
- 클린코더
- 브왈라
- 개발자커리
- 개발도서추천
- 싸피6기
- 싸피
- 디즈니얼굴
- 깃허브계정2개
- ssafy후기
- 상업용무료폰트
- 한글무료폰트추천
- 개발자로드맵
- 개발자
- 임대차3법
- ssafy합격후기
- 클린코드
- SSAFY
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 |
29 | 30 | 31 |
글 보관함