어떻게 알고 '같은 기능을 사용할 수 있는 범위 ()' 와 'zip ()' 의 루프지 하지만 제가 걱정했던것 범위 () '을' 처럼 '-' 가 unix 출력 시퀀스 바뀌엇어요 쉘입니다. 만약 내가 다음 코드를 실행하는:
a=range(10)
print(a)
출력물에는 범위 (10) '는' s not 바뀌엇어요 하지만, 다른 유형의 객체에는 it& # 39 것임을 시사했다. zip () ',' 는 유사한 인쇄했습니다 출력할 때 실행 같은 일이
<zip object at "hexadecimal number">
그래서 내 질문은 어떤 이들은 이를 수 있도록 장이점이 며칠입니까 발생합니까 열거합니다 루프을 그들에 대한 그들의 출력 없이 어떻게 해야 할까요?
파이썬 3 사용해야 합니다.
파이썬 2 '에서' 와 '범위' 로 zip 객체에는 행동을 한 뒤 조교하실 열거합니다 제안했다. 그들은 발생기입니다 - (으) 로 바꿀 수 있는 주문형 생산 요소 목록 메모리에 전체를 확장하십시오 객체에는 아닌 것 같다. 일반적인 사용 (예를 들어, 그 위로 반복) 한 그 효율성을 높일 수 없었다.
이 " lazy"; 또한 윈도 2.x 버전을 존재하는 서로 다른 이름을 갖고 있지만 '와' 즉 '그레인지 아르투르스트리치프'.
한 번에 모든 출력입니다 읽어들이려면 list 객체, 단순히 '목록' 에 익숙한 통화 내용을 및 이용하고, 반복할 수 있습니다.
>>> list(range(3))
[0, 1, 2]
>>> list(zip(range(3), 'abc'))
[(0, 'a'), (1, 'b'), (2, 'c')]
윈도 3.x 에서 ['범위'] [1] 에서 2.x 아니하였으매 파이썬 대신 정보기술 (it) 등 다양한 객체에는 되돌려줍니다 바뀌엇어요 마찬가지로 ['zip'] [2] 이제 zip 객체에는 되돌려줍니다 대신 바뀌엇어요.
이러한 객체로 afaq 열거합니다 동일팔레트에 그들을 ['목록'], [3]:
>>> range(10)
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> zip('abc', 'abc')
<zip object at 0x01DB7120>
>>> list(zip('abc', 'abc'))
[('a', 'a'), ('b', 'b'), ('c', 'c')]
>>>
처음에는 이 변화가 동시에 도움이되지 않는 것처럼 보일 수도 있습니다, zip '사실' 와 '' 범위를 비헤이비어에 효율성이 높습니다. 이 때문에 깔의 zip 및 범위, 필요할 때 항목 객체를 생성하는 대신 바뀌엇어요 보유할 수 있도록 한 번에요. 이렇게 하면 속도 향상 및 작업 메모리 사용량을 줄일 수 있습니다.
[1]: http://docs.python.org/3.2/library/functions.html # 범위 [2]: http://docs.python.org/3.2/library/functions.html # zip [3]: http://docs.python.org/3.2/library/functions.html # 목록
범위 ('그레인지' 의 파이썬 2.*) 객체는 [불변 시퀀스에만] [1] 반면, zip ('아르투르스트리치프' 레임스이블리) 는 발생기입니다 객체에는. 간단히 할 수 있는 바뀌엇어요 발생기입니다 시퀀스일 캐스팅 목록. 예를 들면 다음과 같습니다.
>>> x = range(10)
>>> list(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
하지만 그들이 서로 어떻게 방식으로 요소가 생성됩니다. 한편, 이 경우 해당 내용을 변경 가능 범위는 보통 발전기 및 에사스 이터레이션된 불변, 및 don& # 39, t:
>>> list(x) # x is a range-object
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # second cast to list, contents is the same
>>> y = zip('abc', 'abc')
>>> list(y) # y is a generator
[('a', 'a'), ('b', 'b'), ('c', 'c')]
>>> list(y)
[] # second cast to list, content is empty!
[1]: http://docs.python.org/3/library/stdtypes.html # 불변 e0100042.log 유형