201226 개발일지(19일차) - 파이썬에서 zip(), eval() 함수 활용법

고재개발·2020년 12월 26일
0

Algorithm

목록 보기
14/26
post-custom-banner

파이썬에서 zip(), eval() 함수는 많이 사용해본 적이 없는데 공부하다보니 유용할 것 같아 정리해본다.

eval() 함수

(출처 : https://docs.python.org/ko/3/library/functions.html)

expression, 즉 '식'을 인자로 받는 함수이다.
실행 가능한 식(문자열 등)을 입력으로 받아서 그 식을 실행한 결과값을 돌려주는 함수이다.
예를 들면 아래와 같다.

a= 10
b= 20
expression = "a + b"

print(expression)
print(eval(expression))

출력값
>>> a + b
>>> 30

당장 알고리즘을 풀 때는 크게 사용할 일이 많이 없지만(대체할 방법이 많음), 식을 그대로 출력하는 것이 아니라 식을 계산해서 출력해낸 다는 점이 핵심이다.

zip()함수

(출처 : https://docs.python.org/ko/3/library/functions.html)

iterable 자료형(list, tuple, string 등)을 인자로 받는 함수이다.
number=[1,2,3] string=['a','b','c']가 있다고 할 때, [(1,'a'),(2,'b'),(3,'c')]를 만들어 줄 수 있는 함수이다. 즉 자료형을 묶어주는 함수라고 보면 된다. 반환은 튜플 자료형으로 된다.

number=[1,2,3]
string=['a','b','c']

zip1=zip(number, string)
print(type(zip1))
print(list(zip1))

출력값
>>> <class 'zip'>
>>> [(1, 'a'), (2, 'b'), (3, 'c')]

만약 iterable 자료형의 원소 수가 안맞으면 어떻게 될까? 의외로 error가 나지 않고, 원소 수가 가장 적은 iterable 자료형의 원소 수를 따라 간다.

number=[1]
string=['a','b','c']

zip1=zip(number, string)
print(list(zip1))

출력값
>>> [(1, 'a')]

핵심은 iterable 자료형을 순서대로 쉽게 합쳐주는 것이다.(작은 원소 수를 가진 iterable을 따라서)

profile
고재개발
post-custom-banner

1개의 댓글

comment-user-thumbnail
2020년 12월 26일

키야~~~ 우리 똑똑이👍🏻

답글 달기