BST#

class astropy.table.BST(data, row_index, unique=False)[源代码]#

基类:object

纯Python中的一种基本的二进制搜索树,用作索引引擎。

参数:
data : Table

对原始表的列进行排序

row_index : Column objectColumn对象

数据列对应的行号

unique : bool布尔

索引值是否必须唯一。默认为False。

属性摘要

height 

返回BST高度。

方法总结

add(key[, data])

添加密钥、数据对。

find \(密钥)

返回与给定键对应的所有数据值。

find_node \(密钥)

查找与给定键关联的节点。

is_valid \()

返回这是否为有效的BST。

items \()

以(键,数据)对的顺序返回BST项。

range(lower, upper[, bounds])

返回键在给定范围内的所有节点。

range_nodes(lower, upper[, bounds])

返回给定范围内的节点。

remove(key[, data])

删除与给定密钥对应的数据。

replace_rows(row_map)

用给定字典中它们映射到的值替换所有行。

same_prefix \(val)

假设给定值的长度小于键,则返回其键以该值作为前缀的节点。

shift_left \(行)

减少所有大于给定行的行。

shift_right \(行)

增加所有大于或等于给定行的行。

sort \()

使行顺序与键顺序对齐。

sorted_data \()

返回按键值排序的BST行。

traverse([order])

按给定顺序返回BST的节点。

属性文档

height#

返回BST高度。

方法文件

add(key, data=None)[源代码]#

添加密钥、数据对。

find(key)[源代码]#

返回与给定键对应的所有数据值。

参数:
key : tuplePython :元组

输入键

返回:
data_vals : listPython :列表

与输入键对应的行列表

find_node(key)[源代码]#

查找与给定键关联的节点。

is_valid()[源代码]#

返回这是否为有效的BST。

items()[源代码]#

以(键,数据)对的顺序返回BST项。

range(lower, upper, bounds=(True, True))[源代码]#

返回键在给定范围内的所有节点。

参数:
lower : tuplePython :元组

下限

upper : tuplePython :元组

上限

bounds : (2,) tuplebool(2,) tuple of bool

指示搜索相对于终结点应该是包含的还是排他的。第一个参数对应于包含性下限,第二个参数对应于包含性上限。

range_nodes(lower, upper, bounds=(True, True))[源代码]#

返回给定范围内的节点。

remove(key, data=None)[源代码]#

删除与给定密钥对应的数据。

参数:
key : tuplePython :元组

要取下的钥匙

data : intNonePYTHON:INT或PYTHON:NONE

如果没有,则删除与给定键对应的节点。如果不是“无”,则仅从节点中移除给定的数据值。

返回:
successful : bool布尔

如果删除成功,则为True,否则为false

replace_rows(row_map)[源代码]#

用给定字典中它们映射到的值替换所有行。字典中不作为键出现的任何行都将删除其节点。

参数:
row_map : dictPython :词典

行号到新行号的映射

same_prefix(val)[源代码]#

假设给定值的长度小于键,则返回其键以该值作为前缀的节点。

shift_left(row)[源代码]#

减少所有大于给定行的行。

shift_right(row)[源代码]#

增加所有大于或等于给定行的行。

sort()[源代码]#

使行顺序与键顺序对齐。

sorted_data()[源代码]#

返回按键值排序的BST行。

traverse(order='inorder')[源代码]#

按给定顺序返回BST的节点。

参数:
order : strPython :字符串

递归地搜索BST的顺序。可能的值是:“preorder”:当前节点、左子树、右子树“inoorder”:左子树、当前节点、右子树“posterorder”:左子树、右子树、当前节点