4

例如,如果我在字典中有数百万条记录,其形式为 {(1,2):3,(2,3):4,(3:2):5...xmillion} That's a tuple 作为键并具有相应的值

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

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

这是一种缓慢的方法,是否有更好的算法可以使它更快?喜欢..所以我不必浏览数百万个项目

4

2 回答 2

1

在作为键的元组字典中,您必须遍历所有键才能找到带有key[1] == 2. 除了解决这个问题,别无他法。

于 2012-04-29T08:46:13.843 回答
0

如果您只有字典,{(a,b):c}那么您就不能做得更好:因为您不知道有哪些键,所以b=2您必须查看所有键。

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

于 2012-04-29T08:34:22.057 回答