0

はSortedCollectionのこの実装を使用します。

>>> a = SortedCollection(key=itemgetter(1))
>>> a.insert_right(('A',5))
>>> a.insert_right(('B',3))
>>> a.insert_right(('C',7))
>>> a
SortedCollection([('B', 3), ('A', 5), ('C', 7)], key=<operator.itemgetter object at 0x028C99B0>)

アイテムのインデックスを見つけるための構文は何でしょう'A'か?これは私が選択したソートキーではないことに
注意してください。'A'

これを行うための失敗した方法は次のとおりです。

>>> a.find(lambda item: item[0]=='a')

Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    a.find(k=lambda item: item[0]=='a')
  File "C:/dev/sorted_collection.py", line 167, in find
    raise ValueError('No item found with key equal to: %r' % (k,))
ValueError: No item found with key equal to: <function <lambda> at 0x028DB270>
4

2 に答える 2

1

テスト済み:

[x[0] for x in a].index('A')

SortedCollectionリストのように振る舞うので、実際には検索と同じ構文です

[('B', 3), ('A', 5), ('C', 7)]
于 2011-10-30T13:37:58.743 に答える
1
a = SortedCollection(key=itemgetter(1))
a.insert_right(('A',5))
a.insert_right(('B',3))
a.insert_right(('C',7))

print [y[0] for y in a].index('B')

結果:

0
于 2011-10-30T13:40:48.437 に答える