在元组列表中搜索元组值

时间:2013-02-07 19:14:36

标签: python

我的datastruture实际上是一个字典,它有一个整数键和一个元组列表的值。 我想在该列表中找到特定索引。 例如:

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

我想在索引为2或-2的列表中找到所有元组(它们可以位于元组的第一个或第二个成员中)。然后基于某些条件我想从列表中删除元组元素。例如,我想从列表d [2]中删除(1,-2)。我没有找到一种有效的方法来执行此步骤,因为每当我从d [2]中删除它时,我也想从列表d [1]中删除(1,-2)。

1 个答案:

答案 0 :(得分: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)。