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实现获取鼠标在屏幕上的具体位置以及动作,从而判断鼠标是否在浏览器内,感兴趣的小伙伴可以了解下
    2025-03-03
  • Python实现双向RNN与堆叠的双向RNN的示例代码

    Python实现双向RNN与堆叠的双向RNN的示例代码

    这篇文章主要为大家详细介绍了如何利用Python语言实现双向RNN与堆叠的双向RNN,文中详细讲解了双向RNN与堆叠的双向RNN的原理及实现,需要的可以参考一下
    2022-07-07
  • Python datetime时间格式化去掉前导0

    Python datetime时间格式化去掉前导0

    Python datetime时间格式化去掉前导0,在format string的%与flag之间,添加一个“-”即可
    2014-07-07
  • Python中八种数据导入方法总结

    Python中八种数据导入方法总结

    数据分析过程中,需要对获取到的数据进行分析,往往第一步就是导入数据。导入数据有很多方式,不同的数据文件需要用到不同的导入方式,相同的文件也会有几种不同的导入方式。下面总结几种常用的文件导入方法
    2022-11-11
  • Python中FastAPI项目使用 Annotated的参数设计的处理方案

    Python中FastAPI项目使用 Annotated的参数设计的处理方案

    FastAPI 是一个非常现代化和高效的框架,非常适合用于构建高性能的 API,FastAPI 是一个用于构建 API 的现代、快速(高性能)web 框架,基于 Python 类型提示,这篇文章主要介绍了Python中FastAPI项目使用 Annotated的参数设计,需要的朋友可以参考下
    2024-08-08
  • pip install 安装路径修改的方法步骤

    pip install 安装路径修改的方法步骤

    本文主要介绍了pip install 安装路径修改的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 详解Python中xlwt库的基本操作

    详解Python中xlwt库的基本操作

    xlwt 是一个用于在Python中操作Excel文件的库,它允许用户创建、修改和写入Excel文件,本文主要为大家介绍了xlwt库的一些基本操作,需要的可以参考一下
    2023-11-11
  • 基于Python os模块常用命令介绍

    基于Python os模块常用命令介绍

    下面小编就为大家带来一篇基于Python os模块常用命令介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • python使用imap-tools模块下载邮件附件的示例

    python使用imap-tools模块下载邮件附件的示例

    imap-tools模块是python的第三方扩展, 它使用标准库imaplib,并将常见的邮件处理事件封装,邮件处理起来代码短,下面给大家介绍下python使用imap-tools模块下载邮件中的附件示例代码,感兴趣的朋友一起看看吧
    2021-12-12
  • Python中字典的相关操作介绍

    Python中字典的相关操作介绍

    大家好,本篇文章主要讲的是Python中字典的相关操作介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02

最新评论