Python中的就地字典倒置

Python中的就地字典倒置,第1张

Python中的就地字典倒置

这不是就地完成,而是通过使用popitem()消耗oldDict

from collections import defaultdictdef invert(oldDict):    invertedDict = defaultdict(list)    while oldDict:        key, valuelist = oldDict.popitem()        for value in valuelist: invertedDict[value].append(key)    return invertedDict

我有一种感觉,除非增加大小,否则决不会调整字典的大小,因此您可能需要定期添加/删除虚拟项目。见收缩率

from collections import defaultdictdef invert(oldDict):    invertedDict = defaultdict(list)    i=0    while oldDict:        key, valuelist = oldDict.popitem()        for value in valuelist: invertedDict[value].append(key)        i+=1        if i%1000==0: # allow the dict to release memory from time to time oldDict[None]=None del oldDict[None]    return invertedDict


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5648780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存