Python 中的 list、tuple、dict、set

list、tuple、dict、set 的区别

  1. list:有序列表,支持索引、切片操作,可以进行计算和修改,由 [ ] 表示;

  2. tuple:不支持修改,但和 list 一样,有序,支持切片和索引,由 ( ) 表示;

  3. dict:由无序的键值对组成,可以通过 key 去索引 value 的值,由 { } 表示;
    注:Python 3.6+ 之后,dict 有序,即先插入键值对 A,再插入键值对 B,打印 dict 的时候 A 在 B 前

  4. set:无序且不重复,表示方法和字典类似,也是 { },区别在于 dict 里面是键值对,而 set 由数据或元素或列表构成

一个问题:为什么 Python 3.5 及以前的 dict 是无序的?

答:dict 以前是用哈希表算法实现的,这个算法通过内置的 hash 函数和一个随机种子数来运行,而该种子数会在每次启动 Python 解释器时确定。内置的 collections 模块提供了能够保留插入顺序的字典,即 OrderedDict。它的行为和标准 dict 很像,但性能上有很大区别。如果要频繁插入或弹出键值对(例如要实现 LRU 算法),那么 OrderedDict 会更适合。

Python 中的 list、tuple、dict、set

上一篇:面试四、多线程之AQS、ReentrantLock


下一篇:Java--算法--实战题目