2024-06-28 23:50:02 发布
网友
我正试图导入izip模块,如下所示:
from itertools import izip
不过,在最近从Python2.7改为3之后,它似乎不起作用。
我正在尝试写入csv文件:
writer.writerows(izip(variable1,2))
但我没有运气。仍然会遇到错误。
在Python 3中,内置的zip与2.X中的itertools.izip执行相同的任务(返回一个迭代器而不是一个列表)。^{} implementation几乎完全是从old ^{}复制粘贴的,只是更改了一些名称并添加了pickle支持。
zip
itertools.izip
以下是Python 2和3中的zip与python2中的izip之间的基准:
izip
Python 2.7:
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
Python 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作为一个更灵活的函数,可以在不同大小的迭代器上使用它。
itertools
zip_longest
在python 3中直接使用zip而不是izip,无需导入任何内容。
进一步访问here。
帮助我的方法之一是:
try: from itertools import izip as zip except ImportError: # will be 3.x series pass
在Python 3中,内置的} implementation 几乎完全是从old ^{} 复制粘贴的,只是更改了一些名称并添加了pickle支持。
zip
与2.X中的itertools.izip
执行相同的任务(返回一个迭代器而不是一个列表)。^{以下是Python 2和3中的
zip
与python2中的izip
之间的基准:Python 2.7:
输出:
Python 3:
输出:
在这种情况下,由于
zip
的参数必须支持迭代,因此不能将2用作其参数。因此,如果要将2个变量作为CSV行写入,可以将它们放入元组或列表中:也可以从
itertools
导入zip_longest
作为一个更灵活的函数,可以在不同大小的迭代器上使用它。在python 3中直接使用
zip
而不是izip
,无需导入任何内容。进一步访问here。
帮助我的方法之一是:
相关问题 更多 >
编程相关推荐