티스토리 뷰
728x90
zip 함수의 경우 두개 이상의 그룹의 데이터를 서로 엮어주는 파이썬의 내장 함수이다.
zip 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다.
프로그래머스>월간코드챌린지시즌1>내적
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
def solution(a, b):
return sum([x*y for x, y in zip(a,b)])
두 정수 배열 a, b를 zip 함수를 이용하여 (a[0], b[0])과 같이 튜플의 형태로 사용할 수 있다.
따라서 해당 튜플에 for문을 이용하여 x, y로 받아서 사용할 수 있게 된다.
unzip
zip 함수로 엮어 놓은 데이터를 다시 해체(unzip)하고 싶을 때도 zip 함수를 사용하면 된다.
해체하고 싶은 리스트 앞에 unpacking 연산자(*) 를 붙이면 된다.
# zip
paris = list(zip(numbers, letters))
# unzip
numbers, letters = zip(*paris)
dictionary로 변환
keys = [1,2, 3]
values = ["A", "B", "C"]
# zip
dict(zip(keys, values))
#output
{1: 'A', 2: 'B', 3: 'C'}
주의 사항
zip 함수로 넘기는 인자의 길이가 서로 다를 때는 주의를 해야한다. 이럴 경우 가장 짧은 인자를 기준으로 데이터가 엮이고, 나머지는 버려지게 된다.
Ref.
[파이썬] 내장 함수 zip 사용법 | Engineering Blog by Dale Seo
728x90
'Python' 카테고리의 다른 글
[Python] 몫과 나머지 동시에 구하기 - divmod 함수 (0) | 2021.05.10 |
---|---|
[Python] 조합 - combinations 함수 (0) | 2021.05.10 |
[Python] 찾는 요소의 개수 - count 함수 (0) | 2021.05.10 |
[Python] 삼항 연산자 (Ternary Operator) (0) | 2021.05.10 |
[Python] 빠르게 입력받기 readline( ) (0) | 2021.03.07 |
댓글
공지사항
최근에 올라온 글