파이썬에서 zip(), eval() 함수는 많이 사용해본 적이 없는데 공부하다보니 유용할 것 같아 정리해본다.
expression, 즉 '식'을 인자로 받는 함수이다.
실행 가능한 식(문자열 등)을 입력으로 받아서 그 식을 실행한 결과값을 돌려주는 함수이다.
예를 들면 아래와 같다.
a= 10
b= 20
expression = "a + b"
print(expression)
print(eval(expression))
출력값
>>> a + b
>>> 30
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')]
키야~~~ 우리 똑똑이👍🏻