我該如何解決這個問題?排序的集合:我如何獲得(擴展)切片?
>>> class unslice:
... def __getitem__(self, item): print type(item), ":", item
...
>>> u = unslice()
>>> u[1,2] # using an extended slice
<type 'tuple'> : (1, 2)
>>> t = (1, 2)
>>> u[t] # or passing a plain tuple
<type 'tuple'> : (1, 2)
理性:
我目前過度設計的排序相關聯的集合與返回的項目範圍的能力。這是很可能的,我將要存儲在集合中小整數的元組(甚至像省略號更病理奇怪值)(如鑰匙),並且將需要某種從普通按鍵區別延長片的健全的方式
在一維情況下,這是一個非問題。我想不出任何真正的原因,我想收集slice
類型的值,特別是因爲xrange
值在功能上類似,並且對pythonistas(我的判斷)更容易識別。所有其他擴展切片結構是slice
,Ellipsis
或純老蟒蛇值
沒有其他類型的擴展切片似乎是在任何類型的集合除多維數組在與NumPy常用的元組。
我確實需要支持n維軸,類似於八叉樹或GiS索引。
一個[1] [2]將是非常困難的,使工作在我看的情況。具體來說,假設我正在收集按日期和金額排序的發票。我可能想要做的發票[strptime( 「2008apr」, 「%Y%B」):strptime( 「2009apr」, 「%Y%B」),10000:] 這是超過10000美元,在過去的一年裏每張發票。在不使用擴展片的情況下表達這種情況需要一些僞延遲切片中間值。 – SingleNegationElimination 2009-04-22 04:27:25