【Python技巧系列】 Python中key-value格式数据存储方案

key-value格式的存储的应用场景很多,通用的描述是『输入一个唯一标识的input,返回(查找)一个对应的output』。Python中字典(dictionary)就是一个内置的解决方案 - Python的字典本质上是一个哈希表,功能可对应Java的HashMap,但据说被尽可能地优化过(没有研究过细节,不随意展开),因此输入key的查询速度可以说是Python本身能达到的极致了。...
摘要由CSDN通过智能技术生成

key-value格式的存储的应用场景很多,通用的描述是『输入一个唯一标识的input,返回(查找)一个对应的output』。Python中字典(dictionary)就是一个内置的解决方案 - Python的字典本质上是一个哈希表,功能可对应Java的HashMap,但据说被尽可能地优化过(没有研究过细节,不随意展开),因此输入key的查询速度可以说是Python本身能达到的极致了。

但是,并不是每个场景都是以查询速度为第一条件的。Python字典在建立的过程中同时也要建立一个C long型的哈希表(以及其他?),因此会额外占据很多空间。若是需要在内存中保持一个很大的key-value数据结构,并可以牺牲查询速度的话,也可以用其他方案替代。

这篇整理一下Python中各种常用的key-value方案以及适用场景。

Python自带字典(dictionary)

  • 优点:方便简洁,查询速度No.1
  • 缺点:占用内存空间。
  • 适用场景:内存足够。

Pandas的Series / DataFrame

这里我们主要关心的是,Series / DataFrame的索引中,用户自定义索引和内部建立的数值型索引的映射是怎么实现的?(重点 - 是字典吗?答案:是。)

拿Series来举例:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值