Skip to content Skip to sidebar Skip to footer

Most Efficient Way To Search In List Of Dicts

I have the following list of dicts. people = [ {'name': 'Tom', 'age': 10}, {'name': 'Mark', 'age': 5}, {'name': 'Pam', 'age': 7} ] Which would be the most optimized way in terms o

Solution 1:

Doing a quick timeit on the functions show that using filter seems to be the fastest of all the methods

%timeit filter(lambda person: person['name'] == 'Pam', people)

1000000 loops, best of 3: 263 ns per loop

  • Using next produces a time of 731ns
  • Using the search method produces a time of 361ns
  • And lastly the seach_dictionaries uses 811ns

Solution 2:

If you are searching for a single item then this is the "best" approach

defsearch(name):
    for p in people:
        if p['name'] == name:
            return p

All the other implementations will iterate over all the items in the list, whereas this one will stop once the item is found

Post a Comment for "Most Efficient Way To Search In List Of Dicts"