【Python教程-廖雪峰】使用dict和set

  文章来自:

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167793538255adf33371774853a0ef943280573f4d000

仅供交流学习,欢迎指导。

-----------------------------------------------------------------

一、

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

推测安卓App开发者的代码质量不如苹果 IOS 的开发者,所以安卓App在运行时为了提高自己的响应速度,会采用这种“空间换取时间”的方法,所以安卓手机常常卡顿,运行寥寥几个App内存就爆炸。

相反的是,苹果公司提高了App上架标准,要求开发者大量使用节省内存的代码,例如大量使用指针以减少内存的复制占用,严格禁止各种时空转换的代码,所以 IOS 才异常流畅。

-----------------------------------------------------------------

之前学 C++ 时,听说Google Chrome内核就是用空间换取时间,运行时内存特别大,但浏览器响应速度特别快,一直不理解,今天看到 python 里的 dict 和 list 之间的优缺点,立刻就明白了。估计 C++ 内部也存在这种时空转换的关系。

 

二、

这个通过key计算位置的算法称为哈希算法(Hash)

所谓Hash算法,猜测应该是计算key 的Hash值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值