ccollections는 python에 내장된 모듈입니다. 소스 코드는 Lib/collections/init.py에 있습니다.
deque 컨테이너object
는 from collections import deque를 통해 도입됩니다. deque 컨테이너 객체를 생성할 때 매개변수를 Iterable 객체(예: Tuple, list, str) 또는 maxlen=x(int 유형) 또는 초기화의 경우 None입니다.
deque 컨테이너는 스레드안전성을 지원합니다. append 또는 pop을 통해 deque의 양쪽 끝에서 요소를 삽입하거나 제거할 때 시간 복잡도는 O(1)입니다. 리스트 객체와 비교해 리스트에도 동일한 api가 있어 동일한 기능을 구현하지만, pop(0)이나 insert(0, x) 등 리스트에 대한 연산의 경우 시간 복잡도가 O입니다. (N) .
deque를 초기화할 때 maxlen이 선언되지 않거나 maxlen=None이 선언되면 deque 컨테이너는 원하는 수의 요소를 보유할 수 있습니다. 그렇지 않으면 deque 컨테이너는 제한된 길이의 요소 컨테이너로 정의됩니다.
컨테이너의 요소 수가 설정된 maxlen에 도달하면 새 요소가 추가되면 추가된 요소의 반대쪽 끝에서 동일한 수의 요소가 제외되므로 현재 요소의 요소가 보장됩니다. deque 모두 새로 추가된 요소입니다.
deque 객체함수
append(x)
appendleft(x)
clear()
copy()
count(x): 컨테이너에서 x 값을 갖는 요소의 수를 반환합니다.
extend(iterable)
extendleft(iterable)
index(x): 컨테이너 요소에서 x의 첫 번째 값을 찾습니다. index , 존재하지 않으면 ValueError 예외 발생
insert(idx, x)
pop()
popleft()
remove(x)
reverse(): 컨테이너의 요소를 뒤집고 None
rotate(n)
deque 객체 읽기 전용 속성을 반환합니다.
maxlen
위의 객체 함수 외에도 deque 객체도 Iterable 객체이므로 len(deque);reversed(deque);copy.copy(deque );copy와 같은 함수도 작동합니다. 마찬가지로 in 연산자 는 deque 작업을 순회할 때에도 사용됩니다. 컨테이너. 컨테이너의 임의 요소에 대해 작업을 수행하는 경우 목록을 사용하는 것이 좋습니다.
demo
파일에서 Python 문자열 이 있는 줄의 내용과 이 줄의 처음 세 줄
from collections import deque def search(lines, pattern, maxlen): pre_lines = deque(maxlen=maxlen) for line in lines: if pattern in line: yield line, pre_lines pre_lines.append(line) if name == 'main': with(open('./test.txt')) as f: for line, pre_lines in search(f, 'python', 3): for pre_line in pre_lines: print(pre_line, end='') print(line)
을 가져옵니다. 텍스트 파일 내용을 입력하세요.
c# c c++ javascript python java delphi python golang perl css html python
의 경우 코드 출력은
c c++ javascript python python java delphi python perl css html python
위 내용은 Python의 컬렉션 내장 모듈에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!