【2017-09-21】교체기와 생성기(二)
>>> a=[1,2,3,4,5]
>>> for x in reversed(a):
print(x)
5
4
3
2
1
>>>
역방향 교체는 대상의 크기를 미리 정하거나 대상이
__reversed__ ()
의 특수한 방법을 실현했을 때만 효력이 발생한다.만약 둘 다 맞지 않는다면, 먼저 대상을 목록으로 바꾸어야 한다.만약 교체 가능한 대상이 매우 많은 원소가 있을 때, 매우 많은 메모리를 소모해야 한다.따라서 역방향 교체기를 사용자 정의할 수 있습니다.# : ` __reversed__ () `
>>> class CountDown:
def __init__(self,start):
self.start=start
def __iter__(self):
n=self.start
while n>0:
yield n
n-=1
def __reversed__(self):
n=1
while n<=self.start:
yield n
n+=1
>>> for rr in CountDown(4):
print(rr)
4
3
2
1
>>>
# CountDown
>>> cd=CountDown(10)
>>> cd[2:8]
Traceback (most recent call last):
File "", line 1, in
cd[2:8]
TypeError: 'CountDown' object is not subscriptable
>>> import itertools
>>> for x in itertools.islice(cd,2,8):
print(x)
8
7
6
5
4
3
>>>
None 매개 변수는 기본값이며 유사
[2:] [:2]
원리로 사용됩니다.>>># 8
>>> for x in itertools.islice(cd,2,None):
print(x)
8
7
6
5
4
3
2
1
>>> 2
>>> for x in itertools.islice(cd,None,2):
print(x)
10
9
>>>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.