솔로 슈퍼스타 2023. 6. 14. 06:20
728x90

Python의 zip은 여러 개의 iterable 객체를 묶어주는 함수입니다. 주어진 iterable들로부터 각각의 요소들을 순서대로 묶어 튜플로 반환합니다. zip은 가장 짧은 iterable이 모두 소진되었을 때 멈추게 됩니다.

zip 함수는 다음과 같은 형식으로 사용합니다:

 

zip(*iterables)

 

여기서 iterables은 묶을 iterable 객체들을 의미합니다. zip 함수는 iterables에 전달된 각각의 iterable 객체로부터 같은 인덱스의 요소들을 묶어서 튜플로 반환합니다.

예시를 통해 zip 함수를 이해해 보겠습니다.

 

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
scores = [90, 85, 95]

zipped = zip(names, ages, scores)

for item in zipped:
    print(item)
    
# 출력결과
#('Alice', 25, 90)
#('Bob', 30, 85)
#('Charlie', 35, 95)

예제를 좀 더 살펴 보겠습니다.

# Initialize two lists
subjects1 = ["Java","Python","PHP"]
subjects2 = ['C#','CPP','C']

# Example 1: zip() function with out arguments
final = list(zip())
print(final)
#출력:
#[]

# Example 2: Passing single iterable
final = list(zip(subjects1))
print(final)
#출력:
#[('Java',), ('Python',), ('PHP',)]

# Example 3: Passing multiple iterable
final = list(zip(subjects1, subjects2))
print(final)
#출력:
#[('Java', 'C#'), ('Python', 'CPP'), ('PHP', 'C')]

# Example 4: Unequal list length
subjects1 = ["Java","Python","PHP","html"]
subjects2 = ['C#','CPP','C']
final = list(zip(subjects1, subjects2))
print(final)
#출력:
#[('Java', 'C#'), ('Python', 'CPP'), ('PHP', 'C')]

# Example 5: Traversing Parallelly
for i, j in zip(subjects1, subjects2):
    print(i," ",j)
#출력:
#Java   C#
#Python   CPP
#PHP   C

# Example 6: Unzipping 
subjects1,subjects2=zip(*final)
print(subjects1)
print(subjects2)
#출력:
#('Java', 'Python', 'PHP')
#('C#', 'CPP', 'C')

# Example 7: Use zip() to convert the dictionary
keys = ["course", "fee", "duration"]
values = ['Python','4000','45 days']
final = dict(zip(keys, values))
print(final)
#출력:
#{'course': 'Python', 'fee': '4000', 'duration': '45 days'}

 

[참조]

https://chat.openai.com/

https://sparkbyexamples.com/python/python-zip-function/