I'm trying to write a custom filter method that takes an arbitrary number of kwargs and returns a list containing the elements of a database-like list that contain those kwargs.
For example, suppose d1 = {'a':'2', 'b':'3'}
and d2
= the same thing. d1 == d2
results in True. But suppose d2
= the same thing plus a bunch of other things. My method needs to be able to tell if d1 in d2, but Python can't do that with dictionaries.
Context:
I have a Word class, and each object has properties like word
, definition
, part_of_speech
, and so on. I want to be able to call a filter method on the main list of these words, like Word.objects.filter(word='jump', part_of_speech='verb-intransitive')
. I can't figure out how to manage these keys and values at the same time. But this could have larger functionality outside this context for other people.
Convert to item pairs and check for containment.
all(item in superset.items() for item in subset.items())
Optimization is left as an exercise for the reader.