【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值

猜你喜欢

转载自blog.csdn.net/leiwangzhongde/article/details/82904640