-> 펠린드롬 : 어떤 단어를 뒤로 읽어도 같다면 펠린드롬
1. 입력을 받고, reverse(), reversed()를 사용해서 비교하면 될 것 같다고 생각
- reverse
- reverse는 'list' 타입에서만 제공하는 함수 -> dict, tuple, string X
- list.reverse() 로 사용을 한다
- reverse()는 리스트의 값을 반환하는 것이 아니라 변환해주는 것.
word = [3, 2, 1]
print(word.reverse()) // None 출력
word.reverse() # word 리스트의 순서를 뒤집어준다.
print(word) // [1, 2, 3]
reverse()는 리스트의 값을 반환하는 것이 아니라 변환해주는 것.
- reversed
- 내장함수
- list에서 제공하는 함수가 아니다.
- reversed(word) 로 사용.
- reversed object를 반환함.
- 변환된 값을 출력하고싶으면? -> 원래의 형으로 변환해주면 된다.
- list(reversed(list_word) 식으로..
- reversed obeject를 string으로 변환하기 위해서는 다른 방법이 필요하다! -> join 함수!
list_word = ['1', '2', '3']
tuple_word = ('1', '2', '3')
dict_word = {0:'1', 1:'2', 2:'3'}
string_word = '123'
reversed(list_word) # <list_reverseiterator object at 0x102007400>
reversed(tuple_word) # <reversed object at 0x102007400>
reversed(dict_word) #< dict_reversekeyiterator object at 0x106a140e0>
# key를 기준으로 reversed 된다
reversed(string_word) # <reversed object at 0x102007400>
#string(reversed(string_word)) -> 형변혼이 안된다....!
''.join(reversed(string_word)) # <- 로 해주면 321로 출력된다.
# 입력, 입력의 마지막에는 0이 입력된다고 함.
# while문을 이용해 입력받음
words = []
while True:
word = input()
if word == '0': # while 종료조건
break
else:
words.append(word)
words = [list(word) for word in words] # 각 요소를 list형으로 변환
# 굳이 새로운 배열을 선언하여 reverse하고 추가할 필요가 없었음.
# 바로 비교할 수 있음.
# reverse() 와 reversed() 차이를 다시 한번 복습하자
# reverse_words = []
# for i in range(len(words)):
# reverse_words.append(list(reversed(words[i])))
# for i in range(len(words)):
# if words[i] == reverse_words[i]:
# print('yes')
# else:
# print('no')
for i in range(len(words)):
if words[i] == list(reversed(words[i])):
print('yes')
else:
print('no')