[Python] zip 함수로 코테 쉽게 풀자

PhilAI·2023년 8월 1일

최근 코딩테스트를 풀어보고 있는데 많은 문제에서 zip 함수를 활용하면 쉽게 풀수있는 경우가 많더라구요! 이번에는 zip함수에 대해 쉽게 적어보도록 하겠습니당!

zip함수 간단 정리

zip 함수는 파이썬의 내장 함수로, 둘 이상의 시퀀스(리스트, 튜플, 문자열 등)를 묶어서 하나의 시퀀스로 만들어주는 역할을 합니다. 각 시퀀스의 동일한 인덱스에 있는 요소들을 조합하여 새로운 튜플을 만들어 반환합니다. zip 함수의 기본적인 구조는 다음과 같습니다.

zip(seq1, seq2, ...)

하지만 zip 함수를 사용할 때, 주의해야 할 사항이 있습니다. 만약 입력되는 시퀀스들의 길이가 다르다면, zip 함수는 가장 짧은 시퀀스의 길이에 맞추어 결과를 반환합니다. 이러한 경우에는 일부 데이터의 누락이 발생할 수 있으니, 데이터 길이를 미리 확인하는 것이 좋습니다.

zip함수 활용 예시

1. 리스트들을 묶어서 튜플로 변환하기

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]

# zip 함수를 이용하여 이름과 점수를 묶어서 새로운 튜플의 리스트로 변환
combined = list(zip(names, scores))
print(combined)  # 출력: [('Alice', 85), ('Bob', 92), ('Charlie', 78)]

2. 두 개의 리스트를 딕셔너리로 변환하기

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'}

3. zip 함수와 반복문의 조합

특히 코테에서 zip 함수과 반복문을 함께 사용하면 쉽게 풀수 있습니다.
두 개 이상의 리스트를 동시에 순회하면서 작업을 처리할 때 유용하게 사용되기 때문이죠.

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]

# zip 함수와 반복문을 이용하여 이름과 점수를 함께 출력
for name, score in zip(names, scores):
    print(f"{name}: {score}점")

0개의 댓글