range(start, stop, step)
実際に呼び出す前に、への呼び出しから生じる要素の数を計算するにはどうすればよいですか。
コンテキストは、オブジェクトにスライスのインデックスを実装しているということです
def __init__(self, impl_object):
self.impl=impl_object # the object that actually holds (or generates) an array of values
def __getitem__(self, key):
if isinstance(key, slice):
(start,stop,step)=key.indices( self.impl.numValues() )
# It would be nice to know how many items I'm dealing with
# here
...snip...
私は自分自身にそれを確信させましたstep>0
len(range(start,stop,step))==(start-stop+step-1)/step
しかし、これを負のステップに一般化する方法がわかりません。
編集:解決には時間がかかることが必要です(強く望んでいます)O(1)
。