Wrapper for a list of objects that allows to create indexes for faster lookups
Project description
# ListLookup
Wrapper for faster lookups in a list of objects/dictionaries.
**ATTENTION** Do not modify list once index are created!
```
from listlookup import ListLookup
cities = ListLookup([
{"id": 1, "country": "us", name: "Atlanta"},
{"id": 2, "country": "us", name: "Miami"},
{"id": 3, "country": "uk", name: "Britain"},
{"id": 4, "country": "ca", "name": "Barrie"},
])
cities.index("id", lambda d: d['id'], True)
cities.index("country", lambda d: d['country'])
list(cities.lookup(id=1))
>>> [{"id": 1, "country": "us", name: "Atlanta"}]
list(cities.lookup(country="us", preserve_order=True))
>>> [{"id": 1, "country": "us", name: "Atlanta"}, {"id": 2, "country": "us", name: "Miami"}]
list(cities.lookup(id=2, country="uk"))
>>> []
cities.index('name', lambda d: d['name'])
list(cities.lookup(name=lambda val: val.startswith('B'))
>>> [{"id": 3, "country": "uk", name: "Britain"}, {"id": 4, "country": "ca", "name": "Barrie"}]
```
Wrapper for faster lookups in a list of objects/dictionaries.
**ATTENTION** Do not modify list once index are created!
```
from listlookup import ListLookup
cities = ListLookup([
{"id": 1, "country": "us", name: "Atlanta"},
{"id": 2, "country": "us", name: "Miami"},
{"id": 3, "country": "uk", name: "Britain"},
{"id": 4, "country": "ca", "name": "Barrie"},
])
cities.index("id", lambda d: d['id'], True)
cities.index("country", lambda d: d['country'])
list(cities.lookup(id=1))
>>> [{"id": 1, "country": "us", name: "Atlanta"}]
list(cities.lookup(country="us", preserve_order=True))
>>> [{"id": 1, "country": "us", name: "Atlanta"}, {"id": 2, "country": "us", name: "Miami"}]
list(cities.lookup(id=2, country="uk"))
>>> []
cities.index('name', lambda d: d['name'])
list(cities.lookup(name=lambda val: val.startswith('B'))
>>> [{"id": 3, "country": "uk", name: "Britain"}, {"id": 4, "country": "ca", "name": "Barrie"}]
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
list-lookup-1.0.1.tar.gz
(3.1 kB
view hashes)
Built Distribution
Close
Hashes for list_lookup-1.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3915645f2312245a952f591966e2dd910c12552778a9d7d678a076ce0b882df1 |
|
MD5 | da2f1f3bec09b49c3e15c6aeab029e2a |
|
BLAKE2b-256 | 8cdde01d2547b2fc0a28029388e6564e107a57b2d7ec454cd9c41218a8abcd71 |