查一查字典蟒值我有了钥匙Unix纪元时间戳,像这样一个字典:通过表达
lookup_dict = {
1357899: {} #some dict of data
1357910: {} #some other dict of data
}
除此之外,你知道,参赛的数以百万计和数以百万计。我想重复这个词典,一遍又一遍。理想情况下,我很乐意能写的东西像我可以在R,像:
lookup_value = 1357900
dict_subset = lookup_dict[key >= lookup_value]
# dict_subset now contains {1357910: {}}
但我承认,我找不到任何实际证明,这是Python的东西,而不必能做的,一个方式或其他,遍历每一行。如果我正确地理解了Python(并且我可能不),key in dict
表格的密钥查找使用二进制搜索,因此速度非常快;任何方式来执行二进制搜索,在字典键?
密钥是唯一的,并有一个相应的值。他们要么在字典中,要么不在字典中。我不明白这个问题。 – NullUserException 2013-02-15 00:48:49
键被散列 - 不在btrees中。所以,也许你想看看'bisect'模块将列表作为关键字,并将字典列表作为相应的值 - 并在找到合适的索引后使用切片.... – 2013-02-15 00:52:04
@JonClements:这是有效的,但我建议使用包装'bisect'的两个'sortedlist'食谱中的一个(或者可能不是,就像'blist'中的那个'),因为基于“基于二分法”代码很难阅读,并且容易出错。 – abarnert 2013-02-15 01:09:14