Python 은 어떻게 반대 방향 으로 서열 을 교체 합 니까?

문제.
너 는 반대 방향 으로 서열 을 바 꾸 고 싶다.
해결 방안
내 장 된 reversed()함 수 를 사용 합 니 다.예 를 들 어:

>>> a = [1, 2, 3, 4]
>>> for x in reversed(a):
...   print(x)
...
4
3
2
1
역방향 교 체 는 대상 의 크기 만 미리 확정 하거나 대상 이 실현 할 수 있 습 니 다reversed__() 라 는 특수 한 방법 이 있 을 때 만 효력 이 발생 한다.둘 다 맞지 않 으 면 대상 을 목록 으로 바 꿔 야 합 니 다.예 를 들 어:

# Print a file backwards
f = open('somefile')
for line in reversed(list(f)):
  print(line, end='')
주의해 야 할 것 은 대상 요 소 를 교체 할 수 있다 면 미리 목록 으로 바 꾸 면 많은 메모 리 를 소모 해 야 한 다 는 것 이다.
토론 하 다.
많은 프로그래머 들 이 사용자 정의 클래스 를 통 해reversed__() 방법 은 역방향 교 체 를 실현 한다.예 를 들 면:

class Countdown:
  def __init__(self, start):
    self.start = start

  # Forward iterator
  def __iter__(self):
    n = self.start
    while n > 0:
      yield n
      n -= 1

  # Reverse iterator
  def __reversed__(self):
    n = 1
    while n <= self.start:
      yield n
      n += 1

for rr in reversed(Countdown(30)):
  print(rr)
for rr in Countdown(30):
  print(rr)
역방향 교체 기 를 정의 하면 코드 를 매우 효율 적 으로 만 들 수 있 습 니 다.왜냐하면 데 이 터 를 목록 에 채 운 다음 에 이 목록 을 역방향 으로 교체 할 필요 가 없 기 때 문 입 니 다.
이상 은 파 이 썬 이 어떻게 반대 방향 으로 하나의 서열 을 교체 하 는 지 에 대한 상세 한 내용 입 니 다.파 이 썬 의 역방향 교체 에 관 한 자 료 는 우리 의 다른 관련 글 에 주목 하 세 요!

좋은 웹페이지 즐겨찾기