为什么FrozenList与元组不同?

时间:2014-09-04 22:44:12

标签: python pandas

from pandas.core.base import FrozenList

Type:        type
String form: <class 'pandas.core.base.FrozenList'>
File:        /site-packages/pandas/core/base.py
Docstring:
Container that doesn't allow setting item *but*
because it's technically non-hashable, will be used
for lookups, appropriately, etc.

为什么不使用元组? FrozenList提供了哪些额外功能?

1 个答案:

答案 0 :(得分:16)

这是一个内部熊猫构造。不使用元组因为:

  • 它继承自常见的pandas类
  • 可自定义(例如,repr)
  • 它没有元组的所有功能(有些是禁用的)
  • 它不是可以播放的(所以更像是一个列表,而不是一个元组)

构造用于表示MultiIndex级别,标签和名称。其重点是防止修改这些直通属性并强制使用方法(例如set_levels())。由于这些状态不能独立改变(对于水平/标签),但必须一起改变。

这些是“公共”属性,因此它需要一种可以完成所有这些操作的访问机制(但出于性能原因,如果需要,仍然可以在内部进行更改)。