迭代函数
迭代器方法用于向序列中插入值、遍历序列以及从序列中提取元素。其中一些方法,如 first()、last() 和 search(),用于从已实例化的序列中提取第一个、最后一个或找到的元素。
next
next()
提取下一个序列值。
reset
reset()
将迭代器的位置重置到序列中的第一个元素。
first
first()
从已实例化的序列中提取第一个元素。
last
last()
从已实例化的序列中提取最后一个元素。
subseq
subseq( from, till )
返回对象的已实例化序列的子序列 [from,till]。
append
append( values )
将值序列附加到对象的实例化序列中。参数值可以是元组、列表或单个值。
insert
insert( values )
将值序列插入到对象的物化序列中。参数值可以是元组、列表或单个值。
delete
delete( from, till )
从对象的序列中删除指定范围内的元素。
search
search( from, boundary_from, to, boundary_to )
从对象的已实例化序列中返回指定范围内的元素序列。参数 from 和 to 指定对象序列中的值;boundary_from 和 boundary_to 是边界类型,通常指定为:
exdb.SeqIteratorBoundary.MCO_SEQ_BOUNDARY_INCLUSIVE 或 exdb.SeqIteratorBoundary.MCO_SEQ_BOUNDARY_EXCLUSIVE 。
count
count()
返回对象的已实例化序列中的元素数量。
map
map( input )
从输入序列中提取对象序列中指定位置的元素。(这些位置应按升序提供(通常使用 filter_pos() 或 top_pos() 方法获取)
project
project( field1, ... )
将对象的序列投影到物化对象的其他字段中。例如:
dayit = quote.day.search(DMY(1,MONTH(last),YEAR(last)),
exdb.SeqIteratorBoundary.MCO_SEQ_BOUNDARY_INCLUSIVE,
last, exdb.SeqIteratorBoundary.MCO_SEQ_BOUNDARY_INCLUSIVE)
openit,closeit = dayit.project('open', 'close')
store
store( other )
将对象序列中的元素存储到另一个序列迭代器中。例如:
SequencIterator avg;
avg.store(quote.low)
avg.wavg(quote.high)
示例
以下是一个示例代码片段,演示了迭代方法 next() 的使用:
cursor = con.cursor("Quote", "by_sym")
for quote in cursor:
...
print "%s: %f" % (quote.symbol, quote.close.next())
...