Python Basic 14 | 회문 판별과 N-gram 만들기

devheyrin·2022년 1월 10일
0

python basic

목록 보기
14/19

회문 판별

for문으로 검사하기

word = input('단어 입력: ')
is_palindrome = True
for i in range(len(word) // 2):
    if word[i] != word[-1-i]:
        is_palindrome = False
        break
print(is_palindrome)

시퀀스 뒤집기로 검사하기

word = input('단어 입력: ')
print(word == word[::-1])

리스트와 reversed 사용하기

word = input('단어 입력: ')
print(list(word) == list(reversed(word)))

join 과 reversed 사용하기

word = input('단어 입력: ')
print(word == ''.join(reversed(word))) 

N-gram 만들기

문자열에서 N개의 연속된 요소를 추출하는 방법

글자 단위

# 2-gram 
word = input('단어 입력: ')
for i in range(len(word)-1):
    print(word[i:i+2])
		# print(word[i], word[i+1], sep='')
# 3-gram
word = input('단어 입력: ')
for i in range(len(word)-2):
    print(word[i:i+3])
    # print(word[i], word[i+1], word[i+2], sep='')

단어 단위

text = input('문장 입력: ').split()
for i in range(len(text)-1):
    # print(text[i:i+2])
    print(text[i], text[i+1], sep=' ')

zip 으로 2-gram 만들기 - 문자 단위

text = input('단어 입력: ')
two_gram = zip(text, text[1:])
for i in two_gram:
    print(i[0], i[1], sep='')

zip 으로 2-gram 만들기 - 단어 단위

text = input('문장 입력: ').split()
two_gram = zip(text, text[1:])
for i in two_gram:
    print(i[0], i[1], sep=' ')

zip 과 리스트 표현식으로 N-gram 만들기

import math

text = input('단어 입력: ')
slice_list = [text[i:] for i in range(math.ceil(len(text)/2))]
print(slice_list)  # ['hello', 'ello', 'llo']
n_gram = list(zip(*slice_list))  
print(n_gram)  # [('h', 'e', 'l'), ('e', 'l', 'l'), ('l', 'l', 'o')]
profile
개발자 헤이린 🔜 프로덕트 매니저로 나아가는 중!

0개의 댓글