微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在Python 3.x中的循环内使用list返回内存错误?

如何解决为什么在Python 3.x中的循环内使用list返回内存错误?

我得到了以下代码

var = []
for i in range(0,len(code_list)-11):
        
        sorted_list = sorted(code_list[i:i+10]) 
        minmax_list = list(range(min(sorted_list),max(sorted_list)+1))
        
        if (sorted_list == minmax_list):
            var = var+lista_ordenada

code_list太大时,将返回一个内存错误。 但是,当替换以下内容时:

var = []
for i in range(0,len(code_list)-11):
        
        sorted_list = sorted(code_list[i:i+10]) 
        minmax_list = np.arange(min(sorted_list),max(sorted_list)+1,1).tolist()
        
        if (sorted_list == minmax_list):
            var = var+lista_ordenada

例程成功结束。有人知道原因吗?

谢谢!

解决方法

tolist()将所有数据转换为python标准库类型。它还知道它是一个numpy数组,并且可以访问高度优化的支持数组。

list仅使用迭代器添加所有元素,因此速度较慢且占用大量内存。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。