python的垃圾回收机制
代码如下:stra='qwertyui'
b=reversed(stra)
然后输入list(b)得出结果后,在c=list(b) c成为空列表
这是因为在输入list(b)后 没有将其赋值,python以为这是垃圾,将其给清理掉了吗? 应该是的,我这里测试的就没有问题 liuzhengyuan 发表于 2020-6-24 18:00
应该是的,我这里测试的就没有问题
请问您也是这样吗? 这个不是垃圾回收机制的原因 本帖最后由 Twilight6 于 2020-6-24 18:09 编辑
reversed 函数返回的是一个反向迭代器,迭代器就是可以通过 next 来生成下一个元素的,如果你直接 list 就会一次性把 迭代器里面的值全部读取完
就会导致你后续再次读取全部都是空的了,就像读取文件一样,你read 读取文件 第二次再次读取就会为 空字符串,因为之前已经被你读完了
你可以试试这样运行代码
stra='qwertyui'
b=reversed(stra)
print(next(b))
print(next(b))
print(next(b))
print('__读取剩下的字符')
print(list(b))
页:
[1]