出现这个问题,是我用yield将list平均分割,其实也有网友指出不用yield会更好理解:https://blog.csdn.net/bz0446/article/details/105247931
我是这样使用的:
def change(listTemp, n):
for i in range(0, len(listTemp), n):
yield listTemp[i:i + n]
lists_after_change=change(list_before_change, 512)
如果这时候再用len求生成的list的数量,或者用下标访问,就会报标题中的两种错:
object of type generator has no len(),generator object is not subscriptable
解决方法也很简单,参考这位网友说的:https://www.cnblogs.com/zhmiao/p/10556061.html
用list进行类型转换即可:
lists_after_change=list(change(list_before_change, 512))
就简单总结这么多。