python3的坑之可迭代对象

当从python2转到python3时,在对list进行处理后经常会遇到结果不正常,经过查找发现python2 和python3对list处理后返回对象会有一些差别:

在python2 中,map(), filter等对list进行处理的方法会返回一个list对象:

而在python3中, 会返回一个可迭代对象:

从以上我们可以发现python2对list 处理还是返回list 结果,可以无限迭代;

但是python3处理后会返回一个对应的可迭代对象,且类似于指针,迭代之后会从对象中清空。

所以在使用这些方法时需要谨慎,必要时请改成 列表生成式:

result = [x+1 for x in list1]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章