알고리즘 문제에서 풀이가 정형화 되어있는 팰린드롬(Palindrome) 문제를
풀면서 파이썬의 원 라이너 문법 사용 후기를 간단하게 적어봤습니다.
파이썬의 직관적인 문법 덕분에, 한줄 코딩이 가능하다. 이를 사람들이 One-liner 라고 부른다.
# 회문 by 파이썬 문자열 슬라이싱
phrase.find(phrase[::-1])
# 메모리 스왑
a, b = b, a
# 인덱스 9번까지 값 더하기 by 문자열 슬라이싱
sum(list[::9])
# Factorial 생성
reduce(lambda x, y: x * y, range(1, n+1))
# Fibonacci 생성
lambda x: x if x<=1 else fib(x-1) + fib(x-2)
# 파일 읽기
[line.strip() for line in open(file_name)]
# 주어진 리스트에서 엘리먼트의 값이 -10인 인덱스 반환 하기
list = [1, 2, 3, ... ]
[i for i in range(len(list)) if list [i] == -10]
# 정수 값을 받았을 때, 팰린드롬이 맞는지 bool값으로 확인하는 코드
class Solution:
def isPalindrome(self, x: int) -> bool:
return True if (x >= 0 and str(x) == str(x)[::-1]) else False
# list comprehension
num = []
for i in range(1, 11):
num.append(i)
이 코드를 list comprehension 으로 바꾸면 다음과 같다.
num = [i for i in range(10)]
위의 나열한 원 라이너 문법은 읽기에도 큰 문제가 없지만 조건 절의 경우는
위 두 가지를 모두 만족했을 때 읽기 편한 느낌을 받았다.