Python3中的map函数调用后内存释放问题

 更新时间:2024年02月02日 16:54:15   作者:mr.sorghum  
这篇文章主要介绍了Python3中的map函数调用后内存释放问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python3 map函数调用后内存释放

首先看一下map函数的运行规则

date = {'age': 15, 'name': 'lili', 'sex': 'girl'}
delete_module = ['name', 'sex']
a = map(lambda x: date.pop(x), delete_module)
print(date)
p = list(a)
print(date)

运行结果: 只有对map的结果a做了调用(list)才会对date做处理
{‘age’: 15, ‘name’: ‘lili’, ‘sex’: ‘girl’}
{‘age’: 15}

由此当对map结果多步处理时,处理完第一步时由于内存释放所造成进一步的问题

例子:

import pandas as pd
d = {'p': {'a': [1, 2, 3, 4], 'b': [4, 5, 6, 7]}}
p = map(lambda x: d['p'], d)
print(list(p))
a = map(lambda r: r['a'], p)
print(list(a))
b = map(lambda x: x['b'], p)
list(b)

运行结果 当list§后,p所保留的数据也就释放了
[{‘a’: [1, 2, 3, 4], ‘b’: [4, 5, 6, 7]}]
[]
[]

import pandas as pd
import numpy as np
d = {'p': {'a': [1, 2, 3, 4], 'b': [4, 5, 6, 7]}}
p = map(lambda x: d['p'], d)
a = map(lambda r: r['a'], p)
print(list(a))
b = map(lambda x: x['b'], p)
list(b)

[[1, 2, 3, 4]]
[]

解决方法:

目前只想到了深拷贝的方法

import pandas as pd
import numpy as np
import copy
d = {'p': {'a': [1, 2, 3, 4], 'b': [4, 5, 6, 7]}}
p = map(lambda x: d['p'], d)
x=copy.deepcopy(p)
a = map(lambda r: r['a'], p)
print(list(a))
b = map(lambda y: y['b'], x)
list(b)

python3 map函数

按照crossin的说法

使用map函数可以直接输出列表

>>> list1 = [ 0, 1, 2, 3, 4, 5, 6 ] 
>>> list2 = map(lambda x:x*2,l1)

结果应为:

>>> print(list2)
[0,2,4,6,8,10,12]

但应用于python3

输出的结果并非如此,而是这样的:

<map object at 0x00000000021DA860> 

所以要使用map函数

必须要这样写:

lst_1=[1,2,3,4,5,6]
lst_2=map(lambda x:x*2,lst_1)
print(list(lst_2)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python获取网络图片和视频的示例代码

    Python获取网络图片和视频的示例代码

    Python 是一种多用途语言,广泛用于脚本编写。我们可以编写Python 脚本来自动化日常事务。本文将用Python实现获取Google图片和YouTube视频,需要的可以参考一下
    2022-03-03
  • python修改微信和支付宝步数的示例代码

    python修改微信和支付宝步数的示例代码

    这篇文章主要介绍了python修改微信和支付宝步数的示例代码,本文给大家介绍的非常详细,对大家的饿学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Python用tkinter实现自定义记事本的方法详解

    Python用tkinter实现自定义记事本的方法详解

    这篇文章主要为大家详细介绍了Python用tkinter实现自定义记事本的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Python异步爬虫多线程与线程池示例详解

    Python异步爬虫多线程与线程池示例详解

    这篇文章主要为大家介绍了Python异步爬虫多线程与线程池示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-09-09
  • Pyqt5自适应布局实例

    Pyqt5自适应布局实例

    今天小编就为大家分享一篇Pyqt5自适应布局实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 详解使用Python+Pycaret进行异常检测

    详解使用Python+Pycaret进行异常检测

    异常检测提供了在数据中发现模式、偏差和异常的途径,这些模式、偏差和异常不限于模型的标准行为。本文将用Python Pycaret进行异常检测,感兴趣的可以了解一下
    2022-03-03
  • 使用python-pptx包批量修改ppt格式的实现

    使用python-pptx包批量修改ppt格式的实现

    今天小编就为大家分享一篇使用python-pptx包批量修改ppt格式的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 轻松掌握Python爬虫,从入门到精通

    轻松掌握Python爬虫,从入门到精通

    Python爬虫学习完整版来了!想成为一名爬虫高手,掌握数据采集的技能吗?这份指南将带你从零开始,一步步掌握Python爬虫的各种技巧,让你轻松获取海量数据,需要的朋友可以参考下
    2024-03-03
  • python中如何使用分步式进程计算详解

    python中如何使用分步式进程计算详解

    抽了点时间体验了一把python分布式进程,有点像分布式计算的意思,这篇文章主要给大家介绍了关于python中如何使用分步式进程计算的相关资料,需要的朋友可以参考下
    2019-03-03
  • python解析xml文件实例分析

    python解析xml文件实例分析

    这篇文章主要介绍了python解析xml文件的方法,实例分析了Python针对XML文件节点及字段的获取技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05

最新评论