查一查字典蟒值我有了鑰匙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