我正在学习神经网络1的教程
它在Python 2.7中.我用的是3.4.这是困扰我的一句话:
if test_data: n_test = len(test_data)
我得到TypeError: object of type 'zip' has no len()
分.
有没有办法重写它,让它在3.4中运行?
我正在学习神经网络1的教程
它在Python 2.7中.我用的是3.4.这是困扰我的一句话:
if test_data: n_test = len(test_data)
我得到TypeError: object of type 'zip' has no len()
分.
有没有办法重写它,让它在3.4中运行?
如果您知道迭代器是有限的:
#NOTE: `sum()` consumes the iterator
n_test = sum(1 for _ in test_data) # find len(iterator)
或者,如果您知道test_data
总是小and,那么探查器会说代码是应用程序中的瓶颈,那么下面的代码可能对小n_test
更有效:
test_data = list(test_data)
n_test = len(test_data)
不幸的是,对于zip()
对象,operator.length_hint()
(Python 3.4+)返回零.见PEP 0424 -- A method for exposing a length hint.