반응형
itertools 모듈에서 izip을 가져 오면 Python 3.x에서 NameError가 발생합니다.
다음과 같이 izip 모듈을 가져 오려고합니다.
from itertools import izip
그러나 최근에 Python 2.7에서 3으로 변경 한 후 작동하지 않는 것 같습니다.
csv 파일에 쓰려고합니다.
writer.writerows(izip(variable1,2))
그러나 나는 운이 없다. 여전히 오류가 발생했습니다.
Python 3에서 내장 기능은 2.X에서 zip
와 동일한 작업을 수행합니다 itertools.izip
(목록 대신 반복자를 반환합니다). zip
구현은 거의 완전히부터 붙여 복사됩니다 오래된izip
몇 가지 이름이 변경 및 피클 지원이 추가 된.
다음은 zip
Python 2와 3과 Python 2 사이의 벤치 마크입니다 izip
.
from timeit import timeit
print(timeit('list(izip(xrange(100), xrange(100)))',
'from itertools import izip',
number=500000))
print(timeit('zip(xrange(100), xrange(100))', number=500000))
산출:
1.9288790226
1.2828938961
파이썬 3 :
from timeit import timeit
print(timeit('list(zip(range(100), range(100)))', number=500000))
산출:
1.7653984297066927
이 경우 zip
의 인수는 반복을 지원해야하므로 2를 인수로 사용할 수 없습니다. 따라서 2 개의 변수를 CSV 행으로 작성하려면 튜플 또는 목록에 넣을 수 있습니다.
writer.writerows((variable1,2))
또한 다른 크기의 반복자에서 사용할 수있는보다 유연한 함수로 itertools
가져올 zip_longest
수 있습니다.
나를 도운 방법 중 하나는 다음과 같습니다.
try:
from itertools import izip as zip
except ImportError: # will be 3.x series
pass
파이썬 3에서 직접 사용하는 zip
대신 izip
아무것도 가져올 필요가 없습니다.
반응형
'programing tip' 카테고리의 다른 글
Docker 이미지 내의 사용자를 루트가 아닌 사용자로 전환 (0) | 2020.12.25 |
---|---|
수정 된 예외에`throw;`사용 (0) | 2020.12.25 |
`ng serve` 출력 파일은 어디에 있습니까? (0) | 2020.12.25 |
WinDbg와 VS (Visual Studio) 디버거를 사용하는 이유는 무엇입니까? (0) | 2020.12.25 |
localhost 용 스니퍼 (Windows OS) (0) | 2020.12.25 |