快速访问字典中的部分数据

时间:2012-04-29 08:27:19

标签: python algorithm

例如,如果我在字典中有数百万条记录,其格式为 {(1,2):3,(2,3):4,(3:2):5...xmillion} 这是一个元组作为键并具有相应的值

我想做的是获取元组[1]的值= 2的数据 我的方法之一是

    for item, value in dict.iteritems():
      if item[1] == 2:
        Do operations here...

这是一个缓慢的方法,有没有更好的算法来做到这一点,以使其快速? 喜欢..所以我不必经历数百万的项目

2 个答案:

答案 0 :(得分:1)

在作为键的元组字典中,您必须遍历所有键才能找到 那些key[1] == 2的人。没有别的办法可以解决这个问题。

答案 1 :(得分:0)

如果你拥有的所有{(a,b):c}的字典,那么你就不能做得更好:因为你不知道哪些键有b=2你有看看所有这些。

如果您自己构建字典,则可以在该阶段将元组与b=2分开,这样您就不必再次搜索它们。您可以将它们存储在单独的字典中(只是项目{(a,2):c}),也可以重写您拥有的字典结构(例如{b:{(a,b):c}})。