Python3中的map函數(shù)調(diào)用后內(nèi)存釋放問(wèn)題
Python3 map函數(shù)調(diào)用后內(nèi)存釋放
首先看一下map函數(shù)的運(yùn)行規(guī)則
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)
運(yùn)行結(jié)果: 只有對(duì)map的結(jié)果a做了調(diào)用(list)才會(huì)對(duì)date做處理
{‘age’: 15, ‘name’: ‘lili’, ‘sex’: ‘girl’}
{‘age’: 15}
由此當(dāng)對(duì)map結(jié)果多步處理時(shí),處理完第一步時(shí)由于內(nèi)存釋放所造成進(jìn)一步的問(wèn)題
例子:
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)
運(yùn)行結(jié)果 當(dāng)list§后,p所保留的數(shù)據(jù)也就釋放了
[{‘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函數(shù)
按照crossin的說(shuō)法
使用map函數(shù)可以直接輸出列表
>>> list1 = [ 0, 1, 2, 3, 4, 5, 6 ] >>> list2 = map(lambda x:x*2,l1)
結(jié)果應(yīng)為:
>>> print(list2)
[0,2,4,6,8,10,12]
但應(yīng)用于python3
輸出的結(jié)果并非如此,而是這樣的:
<map object at 0x00000000021DA860>
所以要使用map函數(shù)
必須要這樣寫(xiě):
lst_1=[1,2,3,4,5,6] lst_2=map(lambda x:x*2,lst_1) print(list(lst_2)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python獲取網(wǎng)絡(luò)圖片和視頻的示例代碼
Python 是一種多用途語(yǔ)言,廣泛用于腳本編寫(xiě)。我們可以編寫(xiě)Python 腳本來(lái)自動(dòng)化日常事務(wù)。本文將用Python實(shí)現(xiàn)獲取Google圖片和YouTube視頻,需要的可以參考一下2022-03-03
Python用tkinter實(shí)現(xiàn)自定義記事本的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python用tkinter實(shí)現(xiàn)自定義記事本的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
詳解使用Python+Pycaret進(jìn)行異常檢測(cè)
異常檢測(cè)提供了在數(shù)據(jù)中發(fā)現(xiàn)模式、偏差和異常的途徑,這些模式、偏差和異常不限于模型的標(biāo)準(zhǔn)行為。本文將用Python?Pycaret進(jìn)行異常檢測(cè),感興趣的可以了解一下2022-03-03
使用python-pptx包批量修改ppt格式的實(shí)現(xiàn)
今天小編就為大家分享一篇使用python-pptx包批量修改ppt格式的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
輕松掌握Python爬蟲(chóng),從入門(mén)到精通
Python爬蟲(chóng)學(xué)習(xí)完整版來(lái)了!想成為一名爬蟲(chóng)高手,掌握數(shù)據(jù)采集的技能嗎?這份指南將帶你從零開(kāi)始,一步步掌握Python爬蟲(chóng)的各種技巧,讓你輕松獲取海量數(shù)據(jù),需要的朋友可以參考下2024-03-03

