본문 바로가기
성장하기/Python

zip

by 솔로 슈퍼스타 2023. 6. 14.
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/

'성장하기 > Python' 카테고리의 다른 글

any  (0) 2023.06.14
append() 와 extend() 의 차이  (0) 2023.06.14
deque  (0) 2023.06.14
reduce  (0) 2023.06.14
Counter  (0) 2023.06.14