python2.7 학습 노트(6)-고급 특성: 슬라이드, 교체, 목록 생성식, 생성기

슬라이스


list의 요소를 캡처하는 데 사용합니다. 예를 들어 L은 list L입니다. [a: b] a

번갈아


만약list나tuple을 지정하면, 이list나tuple을 for 순환을 통해 반복할 수 있습니다. 이를 반복 (Iteration) 이라고 합니다.교체 가능한 대상이라면 하표가 있든 없든 교체할 수 있다. 어떻게 한 대상이 교체 가능한 대상이라고 판단할 수 있습니까?다음과 같은 방법으로 collections 모듈의 Iterable 유형을 판단합니다.
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str 
True
>>> isinstance([1,2,3], Iterable) # list 
True
>>> isinstance(123, Iterable) #  
False

목록 생성


목록 생성식 즉List Comprehensions는 Python에 내장된 매우 간단하면서도 강력한list를 만들 수 있는 생성식이다.

생성기


목록 생성식을 통해 우리는 직접 목록을 만들 수 있다.그러나 메모리 제한을 받으면 목록 용량은 한계가 있을 것이다.그리고 100만 개의 요소를 포함하는 목록을 만들면 많은 저장 공간을 차지할 뿐만 아니라 우리가 앞의 몇 개의 요소만 방문해야 한다면 뒤의 절대 다수의 요소가 차지하는 공간은 헛되이 낭비된다.
그래서 만약에 목록 요소가 어떤 알고리즘에 따라 추산할 수 있다면 우리는 순환하는 과정에서 후속 요소를 끊임없이 추산할 수 있을까?이렇게 하면 완전한list를 만들 필요가 없어서 대량의 공간을 절약할 수 있다.파이톤에서 순환하면서 계산하는 이런 메커니즘을 생성기(Generator)라고 부른다.generator는 알고리즘을 저장합니다
창설 방법: 1. 목록 생성식의 []를 ()로 바꾸면,generator가generator의next() 방법을 사용하여 매번 다음 값을 계산할 수 있지만,next 방법을 사용하지 않는 것은 너무 번거롭고 변태적이어서 자주 교체해서 사용하고,generator도 교체 가능한 대상이다
2. 함수를 사용하여 알고리즘을 표현할 때 print로 숫자를 출력할 수 있다. 우리는 print를 yield로 바꿀 수 있다. 실행 절차는 yield를 만나지 않으면 되돌아오고next 방법을 사용할 때 지난번에 퇴출한 yield 방법에서 계속 실행된다.

좋은 웹페이지 즐겨찾기