반응형
만약 여러 개의 리스트(list)나 튜플(tuple) 등 시퀀스값을 하나로 묶고 싶다면 어떻게 하면 될까요?
이때 python zip 함수를 사용하면 됩니다.
zip 함수는 동일한 인덱스를 가진 요소들을 묶어 튜플(tuple) 형태의 시퀀스를 만들어 준답니다.
예시를 함께 볼까요?
type_1 = [1, 2, 3]
type_2 = ['a', 'b', 'c']
zipped = zip(type_1, type_2)
for x in zipped:
print(x)
#(1, 'a')
#(2, 'b')
#(3, 'c')
두 리스트(list)를 zip 함수의 인자로 넣으니 튜플(tuple)이 생성된 것이 보이시죠?
만약 zip으로 묶인 요소들을 복원하고 싶다면 어떻게 하면 될까요?
* 연산자 붙인 인자를 zip 함수에 전달하면 됩니다. * 연산자를 붙인 시퀀스를 전달한다는 것은, 함수에 인자를 전달할 때 리스트(list), 튜플(tuple)과 같은 시퀀스 요소들을 풀어서 전달하는 것과 같습니다.
예를 들어 zipped = [(1, 'a'), (2, 'b'), (3, 'c')] 가 있다고 합시다. *zipped라고 변수명 앞에 * 연산자를 붙인 뒤 zip 함수에 전달하면 마치 (1, 'a'), (2, 'b'), (3, 'c') 각 개별 인자를 전달하는 것과 같습니다.
zip 함수는 전달받은 튜플(tuple)들의 각 위치의 요소를 묶어 새로운 시퀀스를 만드는 것이죠.
zipped = [(1, 'a'), (2, 'b'), (3, 'c')]
type_1, type_2 = zip(*zipped)
print(type_1) # (1, 2, 3)
print(type_2) # ('a', 'b', 'c')
zip은 리스트(list)를 분석하는 파이썬 알고리즘 작성에도 자주 사용되니 확인해 두시면 좋겠습니다.
반응형
'Programming Language > Python' 카테고리의 다른 글
[Python] 파이썬 '//=', float 소숫점 이하 버리는 나눗셈 연산자 (0) | 2024.03.06 |
---|---|
[Python] 프로그래머스 배열 만들기2 알고리즘, 개인 풀이 (2) | 2024.03.04 |
[Python] 파이썬 리스트(list) 내 중복 요소 유무 & 개수 확인 (2) | 2024.03.01 |
[Python] 파이썬 기초, 등차수열 구하기 (0) | 2024.03.01 |
[Python] 파이썬 비트연산자 기초 개념 (0) | 2024.02.28 |