Reordering to un-top-post. > On 11.12.2013 06:47, Dave Angel wrote: > > On Wed, 11 Dec 2013 02:02:20 +0200, Tamer Higazi wrote: > >> Is there a way to get dict by search terms without iterating the > > entire > >> dictionary ?! > >> I want to grab the dict's key and values started with 'Ar'... > > Your wording is so ambiguous that each respondent has guessed > > differently. > > I'm guessing that you want all key/value pairs for which the key > > begins with the two letters 'Ar' I'm guessing further that your > > objection to iterating the entire dictionary is not code size but > > performance. > > If both assumptions are valid then I'll point out that a dict has no > > ordering to it. If you want an approach that doesn't iterate over the > > entire structure you'll need to store the data differently. For > > example if you stored all the keys in a sorted list you could use bisect.
On Wednesday, December 11, 2013 3:37:08 PM UTC+5:30, Tamer Higazi wrote: > Hi Dave! > You were absolutely right. > I don't want to iterate the entire dict to get me the key/values > Let us say this dict would have 20.000 entries, but I want only those > with "Aa" to be grabed. > Those starting with these 2 letters would be only 5 or 6 then it would > take a lot of time. > In which way would you prefer to store the data, and which functions or > methods would you use effectively to accomplish this task ? The classic data structure for this is the trie: General idea: http://en.wikipedia.org/wiki/Trie In python: http://stackoverflow.com/questions/11015320/how-to-create-a-trie-in-python/ > I deeply apologize of not defining the question more defined. English is > not my mother tongue. > I'll do my best next time. English no issue. But better not to top-post http://en.wikipedia.org/wiki/Posting_style#Top-posting -- https://mail.python.org/mailman/listinfo/python-list