반응형 성장하기/Python41 cycle itertools 모듈의 cycle은 반복 가능한 객체의 요소들을 무한히 반복시키는 이터레이터를 생성하는 함수입니다. cycle 함수는 하나의 반복 가능한 객체를 인자로 받습니다. 이 함수를 호출하면 해당 객체의 요소들을 처음부터 끝까지 반복하면서 이터레이터를 생성합니다. 만약 객체의 끝에 도달하면 다시 처음부터 요소들을 반복합니다. 이 과정을 계속 반복하여 무한히 이어지게 됩니다. 예를 들어, 다음과 같이 cycle 함수를 사용하여 리스트의 요소들을 무한히 반복하는 이터레이터를 생성할 수 있습니다: from itertools import cycle my_list = [1, 2, 3] my_cycle = cycle(my_list) for i in range(10): print(next(my_cycle)).. 2023. 6. 15. cmp_to_key cmp_to_key는 파이썬의 functools 모듈에 있는 함수로, 비교 함수를 키 함수로 변환하는 데 사용됩니다. cmp_to_key 함수를 사용하면 이전에 사용되던 cmp 함수를 쉽게 키 함수로 변환할 수 있습니다. cmp_to_key 함수는 다음과 같은 형태로 사용됩니다: from functools import cmp_to_key def compare_func(a, b): # 비교 로직 작성 # a와 b를 비교하여 -1, 0, 1 중 하나를 반환 key_func = cmp_to_key(compare_func) compare_func는 비교 로직을 작성한 함수로, 두 개의 인자 a와 b를 받아 비교하여 -1, 0, 1 중 하나를 반환해야 합니다. 반환 값이 음수인 경우 a가 b보다 작은 것으로 간주.. 2023. 6. 14. PriorityQueue PriorityQueue는 우선순위 큐를 구현한 파이썬의 클래스입니다. 우선순위 큐는 요소들을 저장하고 관리하는 자료구조로, 각 요소는 우선순위를 가지며 우선순위에 따라 처리되는 순서가 결정됩니다. PriorityQueue는 일반적으로 힙(heap) 자료구조를 사용하여 구현되며, 우선순위가 가장 높은 요소가 가장 먼저 처리됩니다. PriorityQueue 클래스는 queue 모듈에 정의되어 있습니다. 사용하기 위해서는 queue 모듈을 import해야 합니다: from queue import PriorityQueue PriorityQueue 객체를 생성하고 요소를 추가하려면 다음과 같이 사용합니다: pq = PriorityQueue() pq.put(item) 여기서 item은 추가할 요소이며, 요소는 (.. 2023. 6. 14. heapq 파이썬의 heap은 힙(heap) 자료구조를 구현하기 위한 모듈인 heapq를 말합니다. 힙은 최댓값 또는 최솟값을 빠르게 찾아내기 위해 설계된 특별한 이진 트리 자료구조입니다. heapq 모듈을 사용하면 리스트를 힙으로 변환하고, 힙에 새로운 요소를 추가하거나 요소를 삭제하는 등의 힙 관련 연산을 수행할 수 있습니다. 이를 통해 최솟값 또는 최댓값을 효율적으로 관리할 수 있습니다. 파이썬의 heapq 모듈은 리스트를 힙으로 다루기 때문에 리스트의 인덱스를 이용하여 힙 내의 요소에 접근할 수 있습니다. 힙은 일반적으로 최소 힙(min heap)으로 구현되어 있어 가장 작은 요소가 항상 루트에 위치하게 됩니다. 최소 힙에서는 루트에 위치한 요소가 최솟값이 되며, 힙 내의 다른 요소들도 일정한 순서를 유지하.. 2023. 6. 14. filter filter 함수는 주어진 함수를 이용하여 iterable에서 조건을 만족하는 요소들로 구성된 새로운 iterable을 생성하는 파이썬 내장 함수입니다. filter 함수는 두 개의 인자를 받습니다. 첫 번째 인자로는 조건을 판단하는 함수(혹은 None)를, 두 번째 인자로는 조건을 검사할 iterable을 전달합니다. filter 함수는 iterable의 각 요소에 대해 조건 함수를 호출하고, 조건 함수가 참(True)을 반환하는 요소만 필터링하여 새로운 iterable을 반환합니다. 일반적으로 filter 함수는 람다 함수와 함께 사용됩니다. 람다 함수는 간단한 익명 함수를 만들 수 있는 방법으로, filter 함수와 함께 사용하기에 편리합니다. 아래는 filter 함수의 사용 예시입니다: # 리스트.. 2023. 6. 14. any any() 함수는 iterable(반복 가능한)한 객체의 요소 중에서 하나 이상이 True로 평가되는지 확인하는 데 사용됩니다. any() 함수는 논리 연산자 or와 유사한 동작을 수행합니다. any() 함수의 구문은 다음과 같습니다: any(iterable) iterable: 검사할 요소들의 집합으로, 반복 가능한 객체가 될 수 있습니다. 예를 들어 리스트, 튜플, 집합(set), 딕셔너리의 키 등이 사용될 수 있습니다. any() 함수는 iterable 객체의 요소를 순회하면서 하나 이상의 요소가 True로 평가되는 경우 True를 반환하고, 모든 요소가 False로 평가되는 경우에만 False를 반환합니다. # 리스트의 요소 중에서 0이 아닌 값이 존재하는지 확인 my_list = [0, 0, 0,.. 2023. 6. 14. append() 와 extend() 의 차이 append()와 extend()는 파이썬 리스트(List)에 새로운 요소를 추가하는 데 사용되는 메서드입니다. 주요한 차이점은 다음과 같습니다: append() 메서드: append() 메서드는 리스트에 하나의 요소를 추가합니다. 인자로 전달된 요소를 리스트의 맨 뒤에 추가합니다. 추가되는 요소는 그대로 하나의 요소로 리스트에 포함됩니다. my_list = [1, 2, 3] my_list.append(4) print(my_list) # 출력: [1, 2, 3, 4] extend() 메서드: extend() 메서드는 리스트에 여러 개의 요소를 추가합니다. 인자로 전달된 요소들을 리스트의 각 요소로 분리하여 추가합니다. 추가되는 요소들은 개별적인 요소로서 리스트에 추가됩니다. my_list = [1, 2,.. 2023. 6. 14. deque deque는 파이썬의 내장 모듈인 collections 모듈에 있는 클래스로, 양쪽 끝에서의 빠른 추가 및 삭제 연산이 가능한 큐(Queue)와 스택(Stack)의 기능을 모두 제공하는 자료구조입니다. deque는 "double-ended queue"의 약자로, 리스트(List)와 유사하지만 리스트보다 효율적인 연산을 수행할 수 있습니다. deque는 맨 앞과 맨 뒤에서의 요소 추가 및 삭제가 O(1)의 시간 복잡도로 가능하며, 리스트의 인덱스에 따른 접근도 가능합니다. 아래는 deque의 주요 기능과 사용법을 간단한 예시와 함께 설명한 코드입니다: from collections import deque # 빈 deque 생성 my_deque = deque() # 오른쪽에 요소 추가 my_deque.app.. 2023. 6. 14. zip 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.. 2023. 6. 14. reduce reduce 함수는 파이썬의 내장 함수로, iterable(반복 가능한) 객체의 요소를 반복적으로 결합하여 단일 값으로 줄이는 기능을 제공합니다. reduce 함수는 functools 모듈에 속해 있으므로, functools.reduce 형식으로 import 해야 합니다. reduce 함수는 다음과 같은 구문을 가집니다: reduce(function, iterable[, initializer]) function: 반복 가능한 객체의 요소를 결합하는 데 사용되는 함수입니다. 이 함수는 두 개의 인수를 받아야 합니다. 첫 번째 인수는 누적 값(accumulate value), 두 번째 인수는 현재 요소의 값입니다. iterable: 값을 줄이는 대상이 되는 반복 가능한 객체입니다. initializer (선.. 2023. 6. 14. 이전 1 2 3 4 5 다음 반응형