ko zh ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko si ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko en ko ko ko ko ko en ko ko ko ko ko ko ko ko ko ko ko de
파이썬을 사용했다면 itertools 모듈을 확실히 접했을 것입니다. 그렇게 보이지 않을 수도 있지만 파이썬에서 가장 강력한 라이브러리 중 하나라고 말할 수 있습니다. 보다 효율적이고 깔끔하며 'pythonic' 코드를 작성하려면 itertools가 무기고에 추가 할 필수 도구라고 생각합니다. 이 기사에서는 라이브러리의 일부 기능을 소개하고이를 더 잘 이해하는 데 도움이되는 몇 가지 예를 살펴 보겠습니다.
그러나 itertools에 대한 것은 포함 된 함수의 정의를 아는 것만으로는 충분하지 않다는 것입니다. 진정한 힘은 이러한 함수를 구성하여 빠르고 메모리 효율적이며보기 좋은 코드를 만드는 데 있습니다. 그래서 여기서 우리는 그들의 응용을 이해하기 위해 함수의 몇 가지 실용적인 예와 함께 정의를 살펴볼 것입니다.
개요를 위해 모듈의 공식 문서 가 말하는 내용을 살펴 보겠습니다 .
모듈은 자체적으로 또는 조합하여 유용한 빠르고 메모리 효율적인 도구의 핵심 세트를 표준화합니다. 이들은 함께 "반복자 대수"를 형성하여 순수 Python에서 간결하고 효율적으로 특수 도구를 구성 할 수 있습니다.
Itertools는 세 가지 유형의 반복자를 제공합니다.
목록, 튜플, 사전과 같은 Python 반복기는 완전합니다. 그러나 반복자가 어느 시점에서 소진 될 필요는 없으며 영원히 계속 될 수 있습니다. 무한 반복기의 세 가지 유형을 살펴 보겠습니다.
count ( start = 0, step = 1 ) :이 반복기는 'start'에서 값을 반환하기 시작하고 단계가 제공되면 해당 값을 건너 뜁니다. 어떻게 작동하는지 예제를 살펴 보겠습니다.
2. cycle ( iterable ) : 전달 된 인수의 모든 값을 반환합니다. 반복 가능한 객체가 소진되면 처음부터 다시 인쇄를 시작합니다.
이제 다음 함수를 사용하여 값을 인쇄하십시오.
3. repeat ( object [, times] ) : 객체 를 반복해서 반환하는 반복자를 만듭니다 . times 인수가 지정 되지 않으면 무기한 실행됩니다 .
이 반복자의 일반적인 용도는 map () 또는 zip () 에 값 스트림을 제공하는 것입니다.
그것은 무한 반복자에 관한 것입니다. 위의 예에서, 이것이 유용 할 수있는 상황이있을 수 있음이 분명합니다. 이제 itertools 라이브러리의 실제 거래를 살펴 보겠습니다. 종료 반복자입니다.
이러한 반복기는 유한 시퀀스에 대해 작업하고 사용 된 함수를 기반으로 출력을 생성하는 데 사용됩니다.
accumulate ( iterable [, func , * , initial = None ] ) : 이진 함수의 누적 결과를 반환하는 반복기를 만듭니다 (선택적 func인수 를 통해 지정됨 ). 경우 func공급되고, 두 개의 인수의 함수이어야한다. 입력 iterable의 요소는에 대한 인수로 허용 될 수있는 모든 유형이 될 수 있습니다 func.
functools.reduce()마지막 누적 된 값만 반환하는 매우 유사 하지만 다른 날의 이야기입니다!
2. chain ( * iterables ) : 첫 번째 iterable에서 요소가 소진 될 때까지 반환 한 다음 모든 iterable이 소진 될 때까지 다음 iterable로 진행하는 이터레이터를 만듭니다. 즉, 시퀀스 시퀀스에서 단일 '시퀀스'를 만듭니다.
chain.from_iterabe()비슷한 방식으로 작동 하는 함수 가 있지만 여러 목록 대신 목록 목록으로 인수를 사용합니다.
3. 압축 ( 데이터 , 선택기 ) 이 행 필터 요소 것을 반복자하게 데이터 만에 대응하는 요소가 그들 복귀 선택기 TRUE 일 것이다.
둘 중 하나가 소진되면 중지
4. dropwhile ( predicate , iterable ) : 이 반복자는 predicatein 인수가 처음으로 false를 반환 한 후에 만 ​​문자를 반환하기 시작 합니다.
5. filterfalse ( predicate , iterable ) : 이것은 술어 가있는 요소 만 반환하는 iterable에서 요소를 필터링하는 반복자를 만듭니다 False. 경우 술어가None , 그것은 거짓 항목을 반환합니다.
6. groupby ( iterable , key = None ) : 이것은 iterable 에서 연속적인 키와 그룹을 반환하는 반복자를 만듭니다 . 키는 각각의 요소에 대한 키 값을 계산하는 함수이다. 지정되지 않거나가 인 None경우 키는 기본적으로 식별 함수로 설정되고 변경되지 않은 요소를 반환합니다.
7. islice ( iterable , start , stop [, step ] ) :이 반복기는 인수로 전달 된 반복 가능한 컨테이너의 값을 선택적으로 반환합니다. 일반 슬라이싱과 달리 음수 값을 지원하지 않습니다.
8. starmap ( function , iterable ) :이 반복기는 함수와 튜플 목록을 인수로 취하고 목록의 각 튜플에서 함수에 따라 값을 반환합니다.
9. takewhile ( predicate , iterable ) : 술어가 참인 한 iterable에서 요소를 리턴하는 반복기를 만듭니다. 의 반대입니다 dropwhile.
10. tee ( iterable , n = 2 ) :이 단순은 단일 iterable에서 n 개의 독립적 인 반복자를 반환합니다 . n이 전달되지 않으면 n의 기본값은 2입니다.
11. zip_longest ( * iterables , fillvalue = None ) : 이것은 각 이터 러블 에서 요소를 집계하는 이터레이터를 만듭니다. 이터 러블의 길이가 고르지 않으면 누락 된 값이로 채워집니다 fillvalue. 가장 긴 이터 러블이 소진 될 때까지 반복이 계속됩니다.
이것들은 모듈에서 제공 한 모든 종료 반복자입니다. 이러한 반복자가 제공하는 다양한 기능을 명확하게 볼 수 있습니다. 이것들은 코드에서 더 짧고, 더 효율적이며, 또한 더 "pythonic" 으로 만들기 위해 사용될 수 있습니다 .
이 설명이 이해하기 쉽고 예제가 모든 요령을 알려줬기를 바랍니다. 계속 진행하면서 문제를 해결하는 데 이러한 기능의 더 아름다운 응용 프로그램을 찾을 수 있습니다.
이것으로이 기사를 마무리하고 마스터 링 itertools의 두 번째 부분으로 돌아와서 모든 함수의 좀 더 복잡한 예제와 함께 조합 반복자를 볼 것입니다. 이 기사와 제안이 즐거웠기를 바랍니다. 피드백을 환영합니다. LinkedIn 에서 나와 연결 하거나 Github 에서 내 작업을 찾을 수 있습니다 .
이 글을 즐겁게 읽으 셨다면 다음과 같이 할 수도 있습니다.
꼭 알아야 할 5 가지 모듈의 5 가지 멋진 Python 함수
의식이란 무엇인가: 불꽃 은유
의식이란 무엇입니까? 그것은 수세기 동안 철학자들과 과학자들을 어리둥절하게 했던 질문입니다. 어떤 사람들은 그것이 우리 몸과 별개로 진정으로 이해할 수 없는 덧없는 일이라고 말합니다.
블록체인 개발자가 되는 방법
블록체인 개발자가 되기 위한 로드맵.
연간 평균 급여가 $154,000이고 꾸준한 직업 성장을 보이는 지금이 블록체인 개발을 배우기에 이상적인 시기입니다. 블록체인 기술을 만들고 개선하기 위해 블록체인 개발자는 컴퓨터 네트워킹, 암호화, 알고리즘 및 데이터 구조를 포함한 다양한 기술을 연습합니다.
JARM 및 Python을 사용하여 SSL 서버 지문 인식
Python과 함께 JARM을 사용하는 간단한 방법 인 pyJARM을 소개합니다.
2020 년 11 월 초에 SalesForce는 설명 할 수없는 JARM이라는 새로운 활성 TLS 지문 도구를 발표했습니다. JARM의 전제는 다양한 사용자 지정 TCP "클라이언트 hello"패킷을 사용하여 대상 서버를 스캔하는 경우 결과 응답을 결합하고 해시하여 공유 또는 유사한 응용 프로그램 또는 서버를 나타내는 지문을 제공 할 수 있다는 것입니다. 스택.
훌륭한 개발자의 3 가지 행동 특성
훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.
기술 인터뷰의 사회적 구성 요소
코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.
기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.
"실용적인 프로그래머"의 5 가지 필수 사항
역대 베스트셀러 코딩 북의 요점
Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.