파이썬 코딩을 더 깔끔하게! #8

Dunno·2021년 7월 4일
0

Better Way 8. 여러 이터레이터에 대해 나란히 루프를 수행하려면 zip을 사용하라

zip함수

  • zip함수를 통해서 여러 이터레이터를 나란히 이터레이션할 수 있다.
  • zip은 튜플을 지연계산하는 제너레이터를 만든다. 따라서 무한히 긴 입력에도 zip을 사용할 수 있다.
  • zip제너레이터는 각 이터레이터의 다음 값이 들어 있는 튜플을 반환한다.
for name, count in zip(names, counts):
	if counts > max_count:
    	longest_name = name
		max_count = count
  • 입력 이터레이터의 길이기 서로 다르면 zip은 아무런 경고도 없이 가장 짧은 이터레이터 길이까지만 튜플을 내놓고 더 긴 이터레이터의 나머지 원소는 무시한다.
names.append('Rosalind')
for name, count in zip(names, counts):
	print(name)

>>>
Cecilia
남궁민수
毛泽东
  • 가장 짧은 이터레이터에 맞춰 길이를 제한하지 않고 길이가 서로 다른 이터레이터에 대해 루프를 수행하려면 itertools 내장 모듈의 zip_longest 함수를 사용하라
import itertools
for name, count in itertools.zip_longest(names, counts):
	print(f'{name}: {count}')

0개의 댓글