我正在学习一个关于神经网络1的教程
它在Python2.7中。我用的是3.4。这是让我困扰的一句话:
if test_data: n_test = len(test_data)
我明白了:TypeError: object of type 'zip' has no len()
。
有没有办法重写它,让它在3.4中工作?
发布于 2016-03-30 10:23:50
现在回答有点晚了,但以防其他人偶然发现:对于相同的神经网络示例教程,我不得不用一个列表( zip (...))包装mnist_loader中的3个zip调用。构造:
training_data = list(zip(training_inputs, training_results))
(...)
validation_data = list(zip(validation_inputs, va_d[1]))
(...)
test_data = list(zip(test_inputs, te_d[1]))
然后它成功了。
发布于 2015-06-24 03:24:07
强制zip()
求值。
foo = list(zip(...))
发布于 2016-06-27 12:10:02
一些信息
这是因为在Python3.x中,zip
返回一个生成器对象。这个对象不是一个列表(它更好),但它的行为像一个列表。您可以尝试像这样遍历它:
for i in zip([1,2,3,4], ['a','b','c','d']):
print i
快速回答
请向我们展示错误发生位置周围的代码。但是我想我仍然可以给你一个快速的(不一定是好的)解决方案。
转动这个
for i in reversed(range(1, len(x))):
如下所示:
for i in reversed(range(1, len(list(x))):
https://stackoverflow.com/questions/31011631
复制相似问题