0

私のデータ構造は、実際には整数キーとタプルのリストである値を持つ辞書です。そのリストで特定のインデックスを見つけたい。例えば:

 d = {}
 d[2] = [(1,-2),(2,4),(3,2)]
 d[1] = [(1,-2),(1,4)]

インデックス 2 または -2 のリスト内のすべてのタプルを検索したい (それらはタプルの最初または 2 番目のメンバーのいずれかにある可能性があります)。次に、特定の条件に基づいて、リストからタプル要素を削除したいと考えています。たとえば、リスト d[2] から (1,-2) を削除したいとします。d[2] から (1,-2) を削除するたびにリスト d[1] からも (1,-2) を削除したいため、この手順を実行する効率的な方法が見つかりませんでした。

4

1 に答える 1

1
>>> a = [(1,1), (2,2)]
>>> if (1,1) in a:
...     print 'Ok'
... 
Ok
>>> 

ものを削除するには:

>>> b = [(1,-1,(3,1),(5,2)]
>>> filter(lambda a: a != (1,-1), b)

あなたに与えるべきです:

[(3,1), (5,2)]

そう..

d = {}
d[2] = [(1,-2),(2,4),(3,2)]
d[1] = [(1,-2),(1,4)]

for k, v in d.items():
    d[k] = filter(lambda a: a != (1,-1), v)

これにより、辞書から (1, -1) が完全に削除されます。

于 2013-02-07T19:16:31.573 に答える