首页 > 系统相关 >python中可以节省内存的机制-生成器

python中可以节省内存的机制-生成器

时间:2023-06-04 23:33:58浏览次数:47  
标签:nums python 生成器 lst 内存 print squares

nums = [1, 2, 3, 4, 5, 6]
squares_it = (n ** 2 for n in nums)        # squares_it 得到一个生成器,仅在调用时动态生成nums的平方
squares_lst = [n ** 2 for n in nums] # squares_lst 一次性计算所有元素并生成一个列表并保存下来

所以,当您这样做时:

for n in squares_it:
    print(n)

就像你在做:

for n in nums:
    print(n ** 2)

但是当你这样做的时候:

for n in squares_lst:
    print(n)

就像你在做:

squares_lst = []
for n in nums:
    squares_lst.append(n ** 2)
for n in squares_lst:
    print(n)

如果您不需要(或没有)列表 nums,那么您可以使用以下方法节省更多空间:

squares_it = (n ** 2 for n in xrange(1, 7))

此外,生成器和迭代器可能会产生无限数量的元素。一个例子是 itertools.count()产生 0, 1, 2, 3, ... 永无止境。

 

参考:https://www.coder.work/article/1278613

标签:nums,python,生成器,lst,内存,print,squares
From: https://www.cnblogs.com/lucky815/p/17456658.html

相关文章

  • Python|通过FastAPI开发一个快速的WebAPI项目
    前言Python如此受欢迎的众多原因之一是Python有大量成熟和稳定的库可供选择:网页开发有:Django和Flask,提供了很好的网络开发体验和大量的有用文档机器学习有:scikit-learn、Keras等,提供了丰富的机器学习的包和数据处理和可视化工具。FastAPI是一个快速、轻量级的现代A......
  • Python网络爬虫对汽车团购报名的爬取及分析
    一、选题的背景(10分)现如今汽车已逐步进入家庭中,对于一些准备购入新车的家庭,犹豫不决,不知道现在市场上与车友们推荐的哪些车,此次爬虫项目将对网上的团购排名进行爬取,更能简单直观的让大家依据个人情况来挑选自己中意的车辆详情。二、设计方案(20分)主题式网络爬虫名称    ......
  • Python程序与设计
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • 一文教你玩转 TDengine 3.0.4.0 重要特性 Python UDF
    TDengine3.0.4.0发布了一个重要特性:支持用Python语言编写的自定义函数(UDF)。这个特性极大节省了UDF开发的时间成本。作为时序大数据处理平台,不支持PythonUDF显然是不完整的。UDF在实现自己业务中特有的逻辑时非常有用,比如量化交易场景计算自研的交易信号。本文内容由浅入......
  • python3类型标记
    1、介绍python是解释型数据类型,变量名称所指向的数据的类型由赋予的数据决定。一般情况下,ide是能够结合上下文环境分析确定变量类型的,进而提供其类型对应的属性和方法。但是,对于另外一些场景,则无法进行直接分析。类型标记机制,允许开发者对变量名称进行类型标记,以帮助ide提示。......
  • python计算收益率
     importpandasaspdimportnumpyasnpimportwarningswarnings.filterwarnings("ignore")pd.options.plotting.backend="plotly"#从csv文件获取数据data=pd.read_csv('testPandasShit.csv',sep='\s+')pd.set_option('......
  • 【python基础】复杂数据类型-列表类型(元组)
    1.初识元组列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的。然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求python将不能修改的值称为不可变的,而不可变的列表被称为元组。元组看起来犹如列表,但使用圆括号而不是方括号来标识。其语法格......
  • 【python基础】复杂数据类型-列表类型
    复杂数据类型-列表类型-学习目录列表-增删改查列表-排序/长度/遍历列表-数值列表列表-列表切片列表-元组......
  • 让你的代码动起来:Python进度条神器tqdm详解及应用实例
    各位Python高手,今天我要给大家介绍一个好用的库,它就是:tqdmtqdm在阿拉伯语中的意思是"进展",所以这个库也被称为"快速进展条"。不得不说,这个名字真的很有创意!让我们想象一下,你正在运行一个耗时的数据处理任务或者训练一个复杂的深度学习模型。你坐在那里,盯着屏幕,焦急地等待程序......
  • linux 性能自我学习 ———— 关于内存 [七]
    前言内存的基本知识,将在操作系统篇中详细介绍,这里只说明如何排查问题。正文内存的分配和回收:在malloc是c标准库中的内存分配函数,对应到系统调用上,有两种实现方式,一种是brk()和mmap()对于小块内存,小于128k使用brk来分配,也就是通过移动堆栈的位置来分配内存。这些内存释放......