什么是灵活的混合python集合对象?

Nav*_*een 0 python autohotkey data-structures

作为一种习惯python的方法,我试图将我的一些代码从Autohotkey_L转换为python .
我立刻遇到了大量的收集对象选择.
你能不能帮我找出一个内置式或第三方提供的具有尽可能多的类型,AutoHotkey_L的功能对象类型方法.

AutoHotkey_L对象具有python dict,list和类实例的功能.

我知道空间和速度存在权衡,但我只对功能而不是优化问题感兴趣.

ken*_*ytm 10

不要把Python写成<another-language>.将Python编写为Python.

应选择数据结构,以便具有您需要使用的最小能力.

  • list- 有序的元素序列,具有1个灵活的末端.
  • collections.deque- 有序的元素序列,具有2个灵活的末端(例如队列).
  • set/ frozenset- 一系列独特元素的无序序列.
  • collections.Counter- 无序非独特元素序列.
  • dict- 无序的键值关系.
  • collections.OrderedDict- 有序的键值关系.
  • bytes/ bytearray- 字节列表.
  • array.array - 基本类型的同类列表.

看看Object的界面,

  • dict 最适合按键查找值
  • collections.OrderedDict 将是最适合推/弹的东西.

当你需要MinIndex/MaxIndex时,需要一个排序的键值关系(例如红黑树).标准库中没有这种类型,但有第三方实现.