python - 为什么在 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 只是使用一个迭代器来添加所有元素,因此速度要慢得多并且占用更多内存。

https://stackoverflow.com/questions/63833502/

相关文章:

javascript - 使用逗号自动格式化数字时如何保留预期的光标位置?

python-3.x - 如何创建 swagger :response that produces

gradle - React Native 项目 Android Gradle Fail (Reac

flutter - 如何在 Flutter 中绘制尖三角形边?

post - ESP32 异步 Web 服务器 POST 方法不起作用

reactjs - CRA typescript环境导出类型时如何解决解析错误

javascript - select2 on select data-select2-id 属性添

typescript - 数字和通用参数之间的区别

python - 使用 tokenizer.encode_plus 时遇到问题

react-native - 如何在没有 Firebase 的情况下为 React Native A