[Python] 내 코드를 Pythonic하게 만들어 줄 함수들

wow_kim·2021년 1월 21일
0

Python

목록 보기
1/6
post-thumbnail

Python

List

Tuple

Dict

그외 내장 모듈

파이썬의 내장 모듈(ex. collections, heapq)은 C로 작성되어 그 속도가 파이썬보다 훨씬 빠릅니다.

getattr

d = deque
getattr(d, "append")(1)

위 코드는 d.append(1)과 완벽하게 동일한 코드입니다.
일반적으로는 굳이 귀찮게 getattr을 쓸 필요가 없이 .을 사용하는게 더 낫습니다.
getattr의 특징은 두 번째 인자를 str 자료형으로 받는다는 것인데 다음 예시를 확인해주세요.

HackerRank, Collections.deque()
첫 줄은 후에 나올 명령의 개수입니다.
두번째 줄부터는 어떤 명령을 수행할 지를 나타냅니다.

Input : 

6
append 1
append 2
append 3
appendleft 4
pop
popleft

다음과 같이 코드를 매우 간소화할 수 있습니다.
getattr을 사용하면서 if문으로 하나하나 수작업해야하는 수고를 덜었습니다.

from collections import deque
d = deque()
for _ in range(int(input())):
    cmd, *args = input().split()
    getattr(d, cmd)(*args)
profile
def __wow__(?):

0개의 댓글