최근 코딩테스트를 풀어보고 있는데 많은 문제에서 zip 함수를 활용하면 쉽게 풀수있는 경우가 많더라구요! 이번에는 zip함수에 대해 쉽게 적어보도록 하겠습니당!
zip 함수는 파이썬의 내장 함수로, 둘 이상의 시퀀스(리스트, 튜플, 문자열 등)를 묶어서 하나의 시퀀스로 만들어주는 역할을 합니다. 각 시퀀스의 동일한 인덱스에 있는 요소들을 조합하여 새로운 튜플을 만들어 반환합니다. zip 함수의 기본적인 구조는 다음과 같습니다.
zip(seq1, seq2, ...)
하지만 zip 함수를 사용할 때, 주의해야 할 사항이 있습니다. 만약 입력되는 시퀀스들의 길이가 다르다면, zip 함수는 가장 짧은 시퀀스의 길이에 맞추어 결과를 반환합니다. 이러한 경우에는 일부 데이터의 누락이 발생할 수 있으니, 데이터 길이를 미리 확인하는 것이 좋습니다.
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
# zip 함수를 이용하여 이름과 점수를 묶어서 새로운 튜플의 리스트로 변환
combined = list(zip(names, scores))
print(combined) # 출력: [('Alice', 85), ('Bob', 92), ('Charlie', 78)]
keys = ["name", "age", "city"]
values = ["Alice", 30, "New York"]
# zip 함수를 이용하여 두 리스트를 딕셔너리로 변환
result_dict = dict(zip(keys, values))
print(result_dict) # 출력: {'name': 'Alice', 'age': 30, 'city': 'New York'}
특히 코테에서 zip 함수과 반복문을 함께 사용하면 쉽게 풀수 있습니다.
두 개 이상의 리스트를 동시에 순회하면서 작업을 처리할 때 유용하게 사용되기 때문이죠.
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
# zip 함수와 반복문을 이용하여 이름과 점수를 함께 출력
for name, score in zip(names, scores):
print(f"{name}: {score}점")