기본 콘텐츠로 건너뛰기

라벨이 이터레이터인 게시물 표시

[matplotlib]quiver()함수

[python] 발생자(generator)

함수 관련내용 함수(Function): 함수의 정의 전역변수와 지역변수 함수: 인수의 전달 가변인수 발생자(generator) 재귀함수(Recursive Function) Python의 함수는 1급(First Class)객체 1급 객체와 변수의 영역 클로저(Closure) 람다함수(Lambda Function) 주요한 내장함수들 데코레이터(Decorator, 장식자) 발생자(generator) 발생자(generator) 는 이터레이터(iterator) 를 생성하는 함수로서 return() 함수 대신 yield 구문 을 사용하여 결과를 반환합니다. 발생자의 기본 구조는 식 1와 같습니다. def 함수이름(인수): 본 문 yield 결과 (식 1) 다음 함수는 가변인자 를 전달하여 리스트 객체를 반환합니다. def mkList(*x): re=[] for i in x: re.append(i*i) return re b=mkList(1,2,3);b [1, 4, 9] 위 함수에 의해 생성된 객체는 리스트로서 요소를 하나씩 호출할 수 있는 이터러블(iterable) 이지만 게으른 평가에 의해 이루어지는 이터레이터는 아닙니다. 즉, 내장 메소드 __next__() 또는 내장 함수 next() 에 의해 실행되지 않습니다. 내장 메소드 또는 속성 은 이름 앞뒤로 이중 밑줄(under score) 를 함유하고 있으며 파이썬에서 객체를 생성할 경우 자동적으로 부여되는 메소드입니다. next(x) 이터레이터 객체인 x의 성분을 하나씩 호출 모든 성분이 호출된 후 next()의 실행은 예외 StopIteration 이 발생 iter(x) x: 내장 메소드인 __iter__()를 포함한 클래스 객체, 즉, 이터러블(iterable) 객체 x를...

[python] 시퀀스, 이터러블 & 이터레이터

시퀀스, 이터러블 & 이터레이터 내용 시퀀스(Sequence)와 이터러블(iterable) 이터레이터(iterator) 시퀀스의 메소드 시퀀스(Sequence)와 이터러블(iterable) 인덱스를 가진 요소들로 구성된 객체를 시퀀스(Sequence) 라고 하며 파이썬은 리스트, 바이트 배열, 문자열, 튜플, range, byte 와 같은 내장 시퀀스 형(type)들을 제공합니다. 시퀀스는 불변형 과 가변형 으로 구분할 수 있으며 한 객체내의 모든 요소의 자료형이 같은 동종형(homogeneous type) 과 그렇지 않은 이종형(heterogeneous type) 으로 분류할 수 있습니다. 예로서 문자열은 모든 요소가 문자로 이루어지므로 동종형입니다. 리스트는 수, 문자, 다른 리스트나 객체 등을 요소로 가질 수 있으므로 동종형 뿐만 아니라 이종형이 됩니다. 당연히 저장이나 연산에서 동종형이 이종형보다 효율적입니다. 이터러블(iterable) 은 요소들를 하나씩 호출할 수 있는 객체를 의미합니다. 그러므로 문자형, 리스트를 포함하는 모든 시퀀스는 이터러블입니다. 그러나 모든 이터러블이 시퀀스가 아닙니다. 예로서 사전(dictionary)형 객체의 요소들은 인덱스를 가지지 않지만 반복문 등을 사용하여 각각의 요소를 호출할 수 있으므로 이터러블입니다. 다음 객체 dic는 사전형 객체로 반복문 중의 하나인 for 문 을 사용하여 요소들 각각을 호출할 수 있습니다. 이 경우 사전의 키(key)만이 반환됩니다. 사전(dictionary) 형은 키와 값으로 구성되며 각각을 메소드로 호출할 수 있습니다. 그러나 다음 코드와 같이 사전 객체 자체에서 요소를 호출할 경우 인덱스 역할을 하는 키만이 호출됩니다. 값이나 키와 값을 모두 호출하기 위해서는 .values()와 .items() 메소드를 사용합니다. dic={'book':1, 'computer':2} for i in dic: print(i...