zip
함수
- 두개 이상의 iterable(리스트, 튜플, 문자열 등)을 병렬로 묶어주는 함수
- 각 iterable의 같은 인덱스 위치에 있는 요소들을 쌍으로 묶어 튜플 형태로 반환한다.
기본 동작
a = [1, 2, 3]
b = ['a', 'b', 'c']
for x, y in zip(a, b):
print(x, y)
- 출력 결과:
- 1,a / 2,b / 3,c
- a, b 리스트 중 같은 인덱스 위치에 있는 요소가 쌍으로 반환된다.
- (
a[0]
과b[0]
이 짝지어진다.)
예제: 음양 더하기
문제: 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs
실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성하기
정답
def solution(absolutes, signs):
answer = []
for value, sign in zip(absolutes, signs):
if sign:
answer.append(value)
else:
answer.append(-value)
return sum(answer)
풀이
zip(absolutes, signs)
absolutes
와signs
리스트의 요소들을 같은 인덱스끼리 묶어서 반환한다.
absolutes = [4, 7, 12]
signs = [True, False, True]
#zip 하면
(4, True), (7, False), (12, True)
for value, sign in zip(absolutes, signs):
zip
로 묶인 각 튜플을 순회- 각 반복에서 튜플의 첫번째 요소는
value
, 두번째 요소는sign
에 대입된다.
- 조건문 처리
sign
의 변수가Boolean
값임
if sign: #sign이 True라면
answer.append(value) #answer[]에 value를 추가
else:
answer.append(-value) #answer[]에 -value를 추가
return sum(answer)
- -,+ 부호 달린 value 값이 answer[]에 추가됨
- sum(answer)를 return
'데이터 분석 > Python' 카테고리의 다른 글
파이썬) 하샤드 수 / sum 함수 주의점 (0) | 2024.12.24 |
---|---|
파이썬) 정수 내림차순으로 배치하기/ join() 함수 (2) | 2024.12.19 |
파이썬) 자연수 뒤집어 배열로 만들기/ 리스트 컴프리헨션 (0) | 2024.12.17 |
파이썬 과제 review (0) | 2024.12.16 |
파이썬) 함수와 변수, 인수, 매개변수 (0) | 2024.12.12 |