728x90
cycle - 순환가능 객체 요소의 반복 생성
zip을 할 때 한 리스트의 elements 수가 다른 것보다 작다고 하면,
1,2,1,2,1,2,1,2,1,2,...
이렇게 다른 리스트의 원소 수에 맞춰 계속 쓰는 것이 아니라
itertools.cycle([1,2])
이렇게 쓰면 훨씬 간단히 표현할 수 있다.
입력 예시)
import itertools
lst1 = ["가", "나", "다"]
lst2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for item1, item2 in zip(itertools.cycle(lst1), lst2):
print(item1, item2)
결과물)
가 1
나 2
다 3
가 4
나 5
다 6
가 7
나 8
다 9
설명)가나다는 3개 뿐이지만 cycle덕에 가나다가나다가나다 이렇게 된다.
가나다가나다가나다에서 끝난 이유는 lst2의 원소 개수가 9개 뿐이라 그렇다.
다른 리스트의 원소 개수에 맞춰 다른 리스트를 반복시켜주는 메소드이다.
만약 cycle이 없다면?
lst1의 원소 개수는 "가", "나", "다" 총 3개이고 lst2의 원소 개수는 1~9까지 총 9개이다.
만약 그대로 zip을 한다면
lst1 = ["가", "나", "다"]
lst2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for item1, item2 in zip(lst1, lst2):
print(item1, item2)
더 작은 리스트의 elements 수에 맞춰 3개만 출력된다.
가 1
나 2
다 3
728x90
'코딩코딩 > 파이썬' 카테고리의 다른 글
Python -아나콘다 가상환경 만드는 법 (파이썬 버전, 가상환경 이름 지정) (0) | 2020.08.17 |
---|---|
OS, xlrd, openpyxl,예외처리 (0) | 2020.07.08 |
주피터 노트북 테마 한눈에 비교하기! (다운받는 법, 바꾸는 법) (1) | 2020.04.13 |
중첩된 반복문에 대한 List comprehension/리스트 컴프리헨션 (0) | 2020.03.30 |
리스트 컴프리헨션/List comprehensions(리스트 축약) (0) | 2020.03.30 |
댓글