itertools - cycle
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덕에 가나다..
2020. 4. 17.
중첩된 반복문에 대한 List comprehension/리스트 컴프리헨션
저번에는 간단하게 알아보았는데요, 이번엔 조금 복잡한 중첩 for문을 어떻게 표현할지에 대해 공부해보겠습니다. [1,2,3]과 [1,2,3,4,5,6,7,8,9,10]의 원소끼리 곱해서 multiplications에 넣는다고 생각해봅시다. multiplications = [] for i in range(1,4): for n in range(1,11): multiplications.append(i*n) 이번엔 리스트 컴프리헨션으로 살펴봅시다. multiplications = [i*n for i in range(1,4) for n in range(1,10)] 두개까지 되는 건 알겠는데.... 몇 개까지 가능할까요? 제한이 없습니다. (제 머리만 제한됨) [ for in (optional if _a) for ..
2020. 3. 30.